我用以下方法创建了一个ApiController:
public User Get(int id) { var user = DocumentSession.Load<User>(id); if(user!=null) { return Mapper.Map<User>(user); } throw new HttpResponseException(HttpStatusCode.NotFound); }
我正在尝试为此方法编写测试,该测试断言当将无效的id传递给函数时,它会返回适当的404响应.
目前我有:
[Test] public void get_invalid_user_returns_404() { Assert.Throws<HttpResponseException>(()=>_usersController.Get(1001)); }
这工作并通过,但它没有断言它是404响应,只是抛出了正确的异常类型.我应该在这做什么来断言结果是404?
谢谢
解决方法
假设您正在使用NUnit,您可以这样做:
[Test] public void get_invalid_user_returns_404() { HttpResponseException ex = Assert.Throws<HttpResponseException>(()=>_usersController.Get(1001)); Assert.That(ex.Response.StatusCode,Is.EqualTo(HttpStatusCode.NotFound)); }
应该做的伎俩.