1
Le sujet dit tout. Je suppose que c'est à cause d'une configuration manquante liée à MVC, mais je suis très nouveau dans le monde de http, asp.net et mvc, donc je ne suis pas sûr de ce qui ne va pas.Vue renvoyée par l'action mvc est vide en utilisant moq
public class MyController : Controller {
public ActionResult MyAction(MyModel model) {
return View(model);
}
}
var controllerMock = new Mock<MyController>() {
CallBase = true // without this, the call to View(model) returns null
};
/*
* I've also tried this before calling the action:
*
* controllerMock.SetFakeControllerContext();
*
* from http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx
* But the same applies.
**/
ViewResult result = controllerMock.Object.MyAction(new MyModel()) as ViewResult;
Assert.AreEqual("MyAction", result.ViewName); // ViewName etc is blank
J'utilise MvcContrib, mais cela n'a pas marché avec ma maquette .. builder.InitializeController (controllerMock.Object) ne lance pas, mais l'action reste vide – simendsjo
vous n'avez pas besoin de vous moquer de votre contrôleur, car vous testez votre contrôleur et non votre maquette. (ou y at-il une raison de se moquer, que je ne vois pas? :-)) – Fabiano
@Fabiano: Très bon point :) J'ai essayé sans se moquer, avec et sans TestControllerBuilder et la même chose avec SetFaceControllerContext - données encore vierges pour la vue cependant. – simendsjo