2009-07-17 9 views
3

J'ai des tests unitaires couvrant mes modèles de reliures. Je crée un ModelBindingContext et remplit le ValueProviderDictionary avec mes valeurs de test. Je suis confiant qu'une fois que mon contrôleur obtient le modèle, tout est couvert avec des tests et les bonnes choses se produisent. Je suis également convaincu que si le BindingContext est correct, mon modèle se liera correctement. Ce sur quoi je ne suis pas confiant, c'est que mon View, lorsqu'il sera publié, remplira correctement le BindingContext.ASP.NET MVC - Page de test de la reliure modèle

J'ai commencé à écrire des tests WatiN qui remplissent des formulaires, les publient et vérifient la vue qui en résulte. C'est correct, mais cela semble très ... indirect. Par exemple, une page qui dit «votre commande a été enregistrée» après avoir cliqué sur Soumettre - Je dois aller à la base de données pour voir si elle a été enregistrée correctement. J'ai déjà des tests couvrant cela lorsque le modèle passé à mon contrôleur est x, y est sauvegardé dans la base de données. Pourquoi est-ce que je répète ce code dans un test de vue? Ce que je veux vraiment, c'est remplir la vue, appuyer sur submit, et vérifier (a) le BindingContext ou (b) le modèle retourné par ModelBinder.

Y at-il des pratiques sur la façon de faire ce genre de choses?


Je voulais juste ajouter que cela s'ajouterait aux tests WatiN. J'ai ~ 50 tests WatiN en ce moment (avec beaucoup plus à ajouter), et si je pouvais faire ce qui précède sans WatiN cela ne supprimerait qu'une poignée de tests. Je continuerai à utiliser WatiN pour ce qui est bon, mais j'ai l'impression d'en abuser pour ces quelques tests.

Répondre

0

Dans votre cas, la liaison de modèle échoue uniquement lorsque vos vues ne respectent pas les conventions de structure. Le premier signe de ce qui se passe, c'est lorsque votre vue ne montre pas le résultat attendu. Le prochain sera probablement lorsque vos tests WatiN échoueront sur les posts. Techniquement, oui, c'est un test indirect, mais aussi le plus pragmatique. Comment pourriez-vous vérifier que tous les points de vue adhèrent aux conventions, sauf observer qu'ils fonctionnent?

Questions connexes