我用以下方法创建了一个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);
}
Run Code Online (Sandbox Code Playgroud)
我试图为这个方法编写一个测试,该测试断言当一个无效的id传递给该函数时,它会返回一个适当的404响应.
目前我有:
[Test]
public void get_invalid_user_returns_404()
{
Assert.Throws<HttpResponseException>(()=>_usersController.Get(1001));
}
Run Code Online (Sandbox Code Playgroud)
这工作并通过,但它没有断言它是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));
}
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |