1

コントローラーの1つにあるasp.net mvc 3プロジェクトがあります

Response.Cookies.Add()

いくつかの古い単体テストを実行すると、"Response" が null であるため、"Response" で終了します。この問題を解決するためにモックアップする方法がわかりません。

ここでいくつかの投稿を見ましたが、解決策はどれも機能していないようで、「Cookie」について話しているものはありません。

4

2 に答える 2

2
var responseCookies = new HttpCookieCollection();
var mockResponse = Mock.Of<HttpResponseBase>(r => r.Cookies == responseCookies);
//you can use new Mock<>, and the set it up as well, but for simple setups I prefer the above syntax

myTestController.Response = mockResponse;
于 2013-10-09T18:51:35.513 に答える
1

ResponseProviderこの静的機能をカバーするクラスなどを作成します。コードでは、このクラスを次の依存関係として追加すると、eg が呼び出されますresponseProvider.AddCookie()。テストでは、これにモック オブジェクトを使用できますResponseProvider

于 2013-10-08T17:51:16.397 に答える