3 回答

TA貢獻1898條經驗 獲得超8個贊
使用最小起訂量看起來像這樣:
var request = new Mock<HttpRequestBase>();
request.Expect(r => r.HttpMethod).Returns("GET");
var mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.Expect(c => c.Request).Returns(request.Object);
var controllerContext = new ControllerContext(mockHttpContext.Object
, new RouteData(), new Mock<ControllerBase>().Object);
我認為Rhino Mocks的語法相似。

TA貢獻1719條經驗 獲得超6個贊
這是Jason鏈接的摘錄。與Phil的方法相同,但使用犀牛。
注意:在嘲笑了mockRequest的內部之前,將嘲笑mockHttpContext.Request 返回mockRequest 。我相信此命令是必需的。
// create a fake web context
var mockHttpContext = MockRepository.GenerateMock<HttpContextBase>();
var mockRequest = MockRepository.GenerateMock<HttpRequestBase>();
mockHttpContext.Stub(x => x.Request).Return(mockRequest);
// tell the mock to return "GET" when HttpMethod is called
mockRequest.Stub(x => x.HttpMethod).Return("GET");
var controller = new AccountController();
// assign the fake context
var context = new ControllerContext(mockHttpContext,
new RouteData(),
controller);
controller.ControllerContext = context;
// act
...
- 3 回答
- 0 關注
- 662 瀏覽
添加回答
舉報