我正在嘗試MOQ框架,現在我已經遇到了障礙。以下單元測試失敗,因爲ViewName屬性的實際值是空字符串。如何用moq模擬控制器上下文
任何人都可以指出我在正確的方向,請問爲什麼這不通過測試?
[TestMethod]
public void Can_Navigate_To_About_Page()
{
var request = new Mock<HttpRequestBase>();
request.Setup(r => r.HttpMethod).Returns("GET");
var mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.Setup(c => c.Request).Returns(request.Object);
var controllerContext = new ControllerContext(mockHttpContext.Object,
new RouteData(),
new Mock<ControllerBase>().Object);
var controller = new HomeController();
controller.ControllerContext = controllerContext;
var result = controller.About() as ViewResult;
Assert.AreEqual("About", result.ViewName);
}
以下也會產生一個空的ViewName。
HomeController controller = new HomeController();
ViewResult result = controller.About() as ViewResult;
Assert.IsNotNull(result);
Assert.AreEqual("About", result.ViewName);
從中演示了嘲諷網絡以及良好的TTD上的例子,我只是困惑,我需要什麼其他的管道,使上述任一第一單元測試例的工作。
乾杯,
安德魯
Thankyou在看到方法簽名之一是View(字符串viewName,對象模型)後,您的觀點變得非常有意義!附:測試通過了! :-) – 2009-07-30 14:41:06