Question

Dans ma demande, j'ai un liant modèle personnalisé que je mis à la DefaultBinder dans le global.asax:

 ModelBinders.Binders.DefaultBinder = new XLDataAnnotationsModelBinder();

Lors de l'écriture des tests unitaires pour les contrôleurs que je dois vous assurer que le contrôleur utilise le liant modèle personnalisé, mais je ne sais pas comment faire.

Mon test ressemble à ceci:

 [Test]
 public void Details_Post_Action_Fails_To_Change_Email_Address_With_Duplicate()
 {
     // Setup
     var controller = new AccountController();
     controller.SetFakeControllerContext();

     var param = Customer.Load(30005);
     param.EmailAddress = "foo@bar.com";

     // Test
     var result = controller.Details(param);

     // Assert
     Assert.IsTrue(result is ViewResult);  // will be ViewResult if failed....
     Assert.IsFalse(((ViewResult)result).ViewData.ModelState.IsValid);
 }

Avec ce test unitaire le contrôleur se termine à l'aide du DefaultModelBinder. Que puis-je ajouter dans ce test pour assurer le contrôleur utilise le liant modèle personnalisé?

Était-ce utile?

La solution

Scott Hanselman a fait un blog lié à cela il y a un certain temps:

Comment tester une unité ModelBinder personnalisé à l'aide Moq?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top