Próbuję ramy MOQ i teraz mam uderzyć w barierę. Poniższy test jednostki kończy się niepowodzeniem, ponieważ rzeczywista wartość właściwości ViewName jest pustym ciągiem.Jak drwić z kontekstu kontrolera z moq
Czy ktoś może wskazać mi właściwy kierunek, dlaczego nie przechodzi testu?
[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);
}
Poniższy tekst daje także pustą nazwę widoku.
HomeController controller = new HomeController();
ViewResult result = controller.About() as ViewResult;
Assert.IsNotNull(result);
Assert.AreEqual("About", result.ViewName);
Z przykładów w internecie, które wykazują szyderczym i również dobrej TTD jestem po prostu mylić, co drugi węzeł sanitarny muszę zrobić albo z powyższym pierwszym przykładem pracy badanego urządzenia.
Cheers,
Andrew
Dziękuję, po zobaczeniu jednego z sygnatur metody jest View (ciąg viewName, model obiektu) Twój punkt ma sens! P.s. test przeszedł! :-) –