2016-08-22 6 views
2

私は単体テストと私のWebプロジェクトの2つのプロジェクトを持っています。MVCユニットのクッキーテスト

 AuthenticationController controller = new AuthenticationController(); 
     ViewResult result = controller.LogOut() as ViewResult; 
     Assert.IsNotNull(result); 

プロジェクトでは、http cookieと承認リクエストを渡します。

LogOutテストを実行しているとき、Cookieを取得すると失敗します。偽のクッキーなどの方法でこれを克服する方法はありますか?

ありがとうございます。

+0

この回答を見てください:http://stackoverflow.com/questions/18098585/moq-mocking-mvc-controllers-response-cookies-clear/18101855#18101855 –

+0

はLogOut' 'の実装を表示します – Nkosi

答えて

1

あるいは、モッキングフレームワークを使用します。

AuthenticationController controller = new AuthenticationController(); 
var httpContext = new MockHttpContext(); 
//set cookie 

controller.ControllerContext = new ControllerContext(httpContext, controller); 

public class MockHttpContext : HttpContextBase 
{ 
    readonly HttpRequestBase _request; 

    public MockHttpContext() 
    { 
     _request = new MockHttpRequest(); 
    } 

    public override HttpRequestBase Request 
    { 
     get { return _request; } 
    } 

    class MockHttpRequest : HttpRequestBase 
    { 
     readonly HttpCookieCollection _cookies; 

     public MockHttpRequest() 
     { 
      _cookies = new HttpCookieCollection(); 
     } 

     public override HttpCookieCollection Cookies 
     { 
      get 
      { 
       return _cookies; 
      } 
     } 
    } 
} 
関連する問題