J'essaie d'utiliser l'assistant de test MVCCONTRIB pour tester une méthode de contrôleur en MVC3.
Le contrôleur: p> Le test: p> "Erreur: p> Méthode de test tests.web.Controls.homecontrolterestest.index a lancé Exception:
Mvccontrib.testhelper.acteResultagronnementException:
Résultat attendu d'être de type ViewResult. Il est en fait de la vue de type. P>
BlockQuote> Des idées? p> p>
3 Réponses :
Je suppose que vous utilisez le MVCConTrib pour MVC2, et il utilise la vue MVC2Result. ATTENDU QUE, vous retournez un point de vue MVC3Result. p>
Avez-vous essayé de compiler MVCConTrib contre MVC3? P>
@Ali: Alors qu'est-ce que tu vas faire? Retourner à mvc 2? J'ai aussi téléchargé MVC 3 RC 2 et je reçois la même erreur. MVC contribativement compatible avec MVC 3?
Je ne suis pas sûr d'être honnête. Ceci est pour un projet personnel et j'essaie d'utiliser une approche TDD. Je n'allais tout simplement pas utiliser l'assistant de test MVC contrib pour le moment.
@Brendan - Avez-vous essayé de compiler MVCCONTRIB contre MVC3 RC2? Je ne sais pas ce qui est changé / brisé entre MVC2 et MVC3, mais si vous pouvez obtenir MVCConTrib de compiler contre les assemblages MVC3 RC2, il devrait résoudre le problème.
Si quelqu'un apparaît sur la même erreur en 2012, je dispose du même problème avec MVC4 et MVCConTrib travaillant contre MVC3. p>
La solution consistait à télécharger le code source pour MVCConTrib. Dans le projet MVCCONTRIB.TESTHELTER Supprimer Référence à System.Web.mvc (par défaut, indiquez la version 3) et ajoutez System.Web.mvc, mais assurez-vous de référencer la version 4.0.0. P>
Puis reconstruisez le projet, copiez des fichiers DLL générés avec PDB (pour entrer dans le code de testHelper) dans votre solution et ajouter une référence à cette DLL. Travaillé pour moi! P>
C'est ce qui a fonctionné pour moi. Ajouter le redirection de la liaison n'a aucune différence dans VS2012 Il semblait ...
J'ai fini par remplacer le testhelper avec fluentmvcctesting.
mvccontrib.teshelper utilise une ancienne version de MVC. Le site a une version MVC3 maintenant, mais comme je l'écriture, ce MVC4 est sorti et une mise à jour MVCContrib.teshelpers pour MVC4 n'existe pas encore.
Sans toucher la source, vous pouvez résoudre ce problème avec une redirection contraignante. Placez ceci dans votre test APP.Config: P>
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>
Je viens d'ajouter le package MVCCONTRIB.MVC3.TESTHELPER-CI dans mon projet de test à VS2012. J'ai ajouté un fichier "app.config" au projet de test et quelque part en cours de route, quelque chose ajouté le redirection de la liaison ci-dessus dans votre app.config pour moi (je pense que c'était Nuget). Quoi qu'il en soit, cela n'a pas réussi à résoudre le problème. J'ai toujours le "..." ViewResult de la vue prévue "mais réelle a été la question" ViewResult "". La solution pour moi dans VS2012 est que @Trailmax a déclaré ... recompilez le projet MVCCONTRIB.TECTHELTER avec ASP.NET MVC 4.
J'ai eu les mêmes résultats pour vs12. Je devais recompiler l'assistant de test en utilisant la DLL MVC plus récente. Ce qui précède fonctionne dans VS10. Je ne sais pas pourquoi ça ne va pas dans VS12.