7

我使用以下方法创建了一个 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?

谢谢

4

1 回答 1

7

假设您使用的是 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));
}

应该做的伎俩。

于 2012-04-29T22:36:12.600 回答