我对TDD相当陌生,我试图在MVC应用程序中模拟HttpContextBase。我还需要模拟响应属性和该属性的HttpCookieCollection。
但是HttpCookieCollection类是密封的,RhinoMocks说它不能模拟密封类。
对我该如何处理这件事有任何建议。
我的考试如下:
[TestMethod]
public void CreateSignInTicketCreateTempCookie()
{
const string email = "dave@somewhere.co.uk";
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);
}发布于 2015-05-25 15:52:50
我想说的是,嘲笑HttpCookieCollection有点过火了--这只是存储cookie的一种方式--您不会嘲笑IList<Cookie>,对吗?
简单地做
response.Stub(x => x.Cookies).Return(new HttpCookieCollection());或者类似的(没有使用犀牛Mocks,所以不确定这是否完全正确)。
https://stackoverflow.com/questions/30441775
复制相似问题