2012-07-16 4 views
0

Au cours des 2 derniers mois, j'ai essayé d'apprendre le nouveau framework MVC. Après avoir compris tous les concepts orientés objet, j'ai créé un site de test en utilisant MVC3, EF4 w/DbContext, et le fournisseur d'adhésion ASP.Net. Tout allait plutôt bien. Ensuite, j'ai décidé de plonger et d'apprendre les tests, en commençant par les tests unitaires.Test MVC dans VS 2010 vs VS 11

Après deux semaines de taper la tête contre mon clavier, je me sens aussi frustré que possible. J'ai parcouru des tonnes de didacticiels vidéo (TekPub, Plural-sight), des tutoriels en ligne (ASP.Net, Microsoft, etc .. etc ..) et beaucoup de questions/réponses StackOverflow. J'ai maintenant sorte de (ha!) Comprendre Loose Coupling, Dépendance Injection, Respositories, Interfaces, Stubs, Mocks (oui, j'ai lu l'article de Fowler à plusieurs reprises), Shims, lambdas, refactoring ... la liste continue et encore et encore.). J'ai regardé Ninject, Structuremap, Moq, TypeMock, JustMock, nUnit, xUnit, etc ...

Donc, je sais qu'il ya un tas de façons de peau ce chat. Maintenant, je vois que VS11/MVC4 sort et ils ont cette chose appelée Fakes qui semble être une bonne option pour les méthodes statiques comme les trucs d'adhésion.

Ma question:

Je veux tester mon MVC EF4/DbContext/demande d'adhésion. La plupart de mes pages nécessitent un utilisateur authentifié [Authorize] et c'est avant même que j'arrive à la méthode réelle à tester.

Si vous débutiez (comme moi), quel est le moyen le plus simple et le plus facile de tester mon application CRUD? Je n'aime pas forcément avoir un cadre de DI fonctionnant sur le côté de la production (juste une autre chose qui pourrait mal se passer) et je trouve que les trucs de fracturation sont déroutants quand tout le monde s'en sort.

Je pourrais passer à VS11/MVC4 et essayer l'approche Fakes. Semble être légèrement plus simple mais semble toujours avoir besoin de toutes les ressources de Référentiel/Interfaces pour EF. Ou voulez-vous juste le jeter et utiliser un outil de test d'intégration comme Selenium (qui était ce que j'avais à utiliser auparavant avec le développement basé sur les formulaires)?

Toutes les suggestions sont grandement appréciées. Désolé si c'est une question moche mais j'espère un rayon de lumière ici ...

Répondre

0

Pour toutes les versions de mvc ou des programmes de son presque la même manière de tester.

Vous devriez avoir la plupart de votre logique basée sur les interfaces. cela vous permettra de séparer les soucis et tester unitairement tout ce dont vous avez besoin, ce qui vous donnera la possibilité de truquer (créer de fausses implémentations) ou de créer une classe sur le runtime qui représentera la logique que vous voulez utiliser avec Mock ou Rhino Mock. .

Vous pouvez en savoir plus sur les tests unitaires de base ici:

http://msdn.microsoft.com/en-us/magazine/dd942838.aspx

aussi je vous recommande de jeter un oeil sur le livre où Steven Sanderson a exemple d'application, y compris les tests unitaires de la plupart des régions.

http://www.amazon.co.uk/Pro-ASP-NET-MVC-Framework-ebook/dp/B005PZ07US

Ici vous avez introduction à moq http://www.codeproject.com/Tips/182847/An-Introduction-to-MOQ

Vous avez alternative comme la maquette de rhinocéros:

http://ayende.com/blog

et quelques exemples: http://daysincode.blogspot.com/2012/06/examples-of-mocking-with-rhino-moq.html

Bien sûr tout ici conduit à: http://msdn.microsoft.com/en-us/magazine/ekstremalna-przerobka-asp-net--czesc6-podzial-obowiazkow.aspx