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 に答える