0
我對TDD相當新,我試圖嘲笑MVC應用程序中的HttpContextBase。我還需要模擬Response屬性和HttpCookieCollection。嘲笑密封類與RhinoMocks
雖然HttpCookieCollection類是封閉的,RhinoMocks說它不能模擬密封類。
任何意見,我應該如何解決這個問題。
我的測試是在下面:
[TestMethod]
public void CreateSignInTicketCreateTempCookie()
{
const string email = "[email protected]";
var mockHttpContextBase = MockRepository.GenerateMock<HttpContextBase>();
var response = MockRepository.GenerateMock<HttpResponseBase>();
var mockUserRepository = MockRepository.GenerateStub<IUserRepository>();
var cookieCollection = MockRepository.GenerateStub<HttpCookieCollection>();
mockHttpContextBase.Stub(x => x.Response).Return(response);
response.Stub(x => x.Cookies).Return(cookieCollection);
var webAuth = new WebAuthenticator(mockUserRepository);
webAuth.CreateSignInTicket(mockHttpContextBase, email);
Assert.IsTrue(mockHttpContextBase.Response.Cookies.Count == 1);
}
謝謝 - 對不起,我是一個新的嘲弄新,所以沒有想到這樣做。 –
不需要道歉。另一個技巧是改變你的最後一行來讀取'Assert.AreEqual(1,mockHttpContextBase.Response.Cookies.Count)' - 如果它失敗了,它會給你一個更有意義的輸出。 –
好的,謝謝了。 –