3
    public HttpResponseMessage Save(IList<Models.Activity> activities)
    {
       //some controller code
        return Request.CreateResponse(HttpStatusCode.Created, activities, Configuration);
    }

アクティビティが Request.CreateResponse に正しく渡されることを単体テストするにはどうすればよいですか?

4

1 に答える 1

7

ここには 2 つのオプションがあります。

CreateResponse が機能するように、適切なコンテキストを設定することができます。このブログ投稿には、PostProductReturnsCreatedStatusCode を使用したデモンストレーションがあります。

ここにリンクがあります

または、ここで言及したように、インメモリ サーバーにリクエストを送信することもできます。

MSDN リンク

最初のオプションは、Web API パイプラインを経由しないため単体テストに近くなりますが、セットアップと構成も難しくなります。

応答本文もテストする必要がある場合は、次のようなコードを使用して、送り返されているエンティティを取得できます。

ObjectContent content = response.Content as ObjectContent;
IList<Models.Activity> responseActivities = content.Value;
于 2013-02-28T15:34:34.953 に答える