我正在尝试使用MOQ框架,但目前遇到了一个障碍。下面的单元测试失败,因为ViewName属性的实际值为空字符串。
请问有谁能指点我正确的方向,为什么这个测试没有通过呢?
[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);
}
以下内容也会返回一个空的视图名称。
HomeController controller = new HomeController();
ViewResult result = controller.About() as ViewResult;
Assert.IsNotNull(result);
Assert.AreEqual("About", result.ViewName);
从网上展示模拟和良好的测试驱动开发的例子中,我对于让上述第一个单元测试示例工作所需的其他管道感到困惑。
谢谢,
安德鲁