Mock Ich probiere die MOQ Framework und bis jetzt habe ich eine Barriere getroffen. Der folgende Komponententest schlägt fehl, da der tatsächliche Wert der ViewName-Eigenschaft eine leere Zeichenfolge ist.Wie der Controller-Kontext mit Moq
Kann mir jemand bitte in die richtige Richtung weisen, warum dies nicht den Test besteht?
[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);
}
Das folgende ergibt auch einen leeren ViewName.
HomeController controller = new HomeController();
ViewResult result = controller.About() as ViewResult;
Assert.IsNotNull(result);
Assert.AreEqual("About", result.ViewName);
Aus den Beispielen auf der Bahn, die ich gut TTD demons spöttisch und auch bin nur verwirrt, was andere Sanitär ich entweder die oben genannten ersten Einheit Testbeispiel Arbeit machen müssen.
Cheers,
Andrew
Vielen Dank, nachdem Sie eine der Methodensignaturen sehen (string viewName, Objektmodell), macht Ihr Punkt Sinn! Ps.s. der Test ist bestanden! :-) –