6
votes

Unité teste une renduermvcController encore possible?

Alors je travaille avec Umbraco 6.12 et que vous avez beaucoup de difficulté à tester un rendumvccontroller .

J'ai mis en œuvre iAPplicationEventhandler dans mon global.ascx et Ninject fonctionne bien et comme prévu lors de l'exécution de l'application - tout le bien.

Cependant, le test de l'unité testant ces contrôleurs est une question différente. J'ai trouvé cela, et j'ai ajouté la dernière réponse:

http: // Problèmes .umbraco.org / numéro / u4-1717

J'ai maintenant ce charmant hack dans ma configuration: xxx

qui a entendu L'original umbracocontext ne peut pas être null, mais je jette maintenant:

courant n'a pas été initialisé sur Umbraco.Web.PubliedCache.PubliedCachesResolver. Vous devez initialiser le courant avant d'essayer de le lire.

Le résolveur de caches publié semble également être caché derrière des éléments internes et protégés, que je ne peux pas utiliser la réflexion pour pirater comme je ne peux rien avoir à passer dans setProperty réflexion.

C'est vraiment frustrant, j'aimerais V6 et utiliser Umapper est très gentil. Je peux injecter un repo, un service, une commande ou une requête à volonté dans les contrôleurs et la vie est bon - je ne peux tout simplement pas couvrir les contrôleurs!

Toute aide à ce sujet serait grandement appréciée.

merci.


0 commentaires

3 Réponses :


0
votes

J'ai soulevé ceci sur les forums Umbraco et il y a plusieurs réponses qui peuvent vous aider.

voir ici:

http://our.umbraco.org/forum/developers/api-quêtes/37255-how-can-i-unit-test-a-class-Inherting-de-surfacecontroller

Essentiellement, vous pouvez .. Juste ... mais nécessite une réflexion car certaines des classes de clés et des interfaces sont internes. Lorsque la dernière publication de Luke indique, c'est parce que la fonctionnalité est actuellement un peu une cible en mouvement.


0 commentaires

1
votes

Selon l'équipe principale, vous devez inclure la bibliothèque Umbraco.TestS et hériter de votre test de BeanumbracoApplicationTest. Qui configurera une umbracoapplication valide et un umbracocontext.

https://groups.google.com/forum /? Fromgroups = #! Sujet / Umbraco-dev / vejdzjqmtsu


0 commentaires

10
votes

à l'unité Test A Umbraco RendermvcController, vous devez Prenez le code source de Github , compilez la solution vous-même, et Obtenez le Umbraco.TestS.dll et la référez-le sur votre projet de test.

En plus de cela, vous devez faire référence à SQLCE4UMBRACO.dll qui est distribué avec les packages UmbraCo et Rhino.mocks.dll, qui est en interne pour la moqueur .

Pour vous aider, j'ai compilé mettre l'Umbraco.TestS.dll pour UmbraCo 6.1.5 et le mettre avec le rhino.mocks.dll et le mettre sur Ce fichier zip .

Enfin, dérivez votre test de BaserOntingTest, remplace la base de donnéesAtestBehavior à Nodatabaseperfixture et obtenez l'UmbraCocontext et httpbasecontext en appelant la méthode gettroutingContext, comme dans le code ci-dessous: xxx

Ce code n'a été testé que dans UmbraCo 6.1.5.


2 commentaires

Merci, j'ai fini avec des semblables. C'est un gros effort mais j'espère que cela obtient un peu plus de TLC de l'équipe principale à l'avenir.


@Jorgelusar, j'essaie de configurer un site Web Umbraco avec TDD en suivant votre exemple, mais mon premier test échoue toujours. Pouvez-vous s'il vous plaît vérifier ma question et voir si vous aviez le même problème?