c# - Quelle est la meilleure façon d'implémenter BDD / TDD dans .NET 2.0?

Translate

Je cherche à ajouter une suite de tests à mon application, mais je ne peux pas passer aux nouveaux frameworks de test pour .NET 3.5.

Quelqu'un a-t-il une suggestion sur les bons cadres de test à utiliser?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Dan
Translate

Nous utilisonsMbUnitetRihno se moqueet ils se révèlent très bien fonctionner ensemble. Lorsque vous faites TDD, vous devrez presque certainement faire une forme d'injection de dépendances, bien que cela puisse être fait manuellement, cela vaut la peine de regarder un conteneur IoC tel queChâteau de Windsor.

Cela vaut la peine de regarder les écrans de John Paul Bodhood pour vous aider à démarrer.Blog de JPB

La source
Jill Lee
Translate

NUnit et Rhino conviennent bien et leconteneur auto-moqueurpourrait être intéressant.

Si vous regardez aussi BDD, alorsNB avoirest probablement un bon choix. Si toutefois vous voulez simplement dire le style de BDD qui se rapporte aux tests unitaires (xSpec), vous pouvez vous en tirer en ajoutant un framework (bien que des choses commespécunitéajoutez du sucre synctactique), mais vous voudrez peut-être regarderMSpecest également intéressant.

La source
Translate

Découvrez le screencast de Rob Conery sur BDD en utilisant MSpec. Très impressionnanthttp://blog.wekeroad.com/mvc-storefront/kona-3/

edit: J'utilise maintenant cette approche:http://10printhello.com/the-one-bdd-framework-to-rule-them/

La source
Translate

Pour une bibliothèque d'objets fictifs, j'ai trouvé la licence BSDRhino.Mockspour être plutôt agréable.

La source
Translate

J'ai eu beaucoup de succès en utilisantNUnitainsi que.

J'ai aussi utiliséNMocklorsque le besoin de faux objets se fait sentir. En prime, l'usine de création de vos objets simulés s'appelle la moquerie.

Pour faciliter l'exécution des tests unitaires, j'ai utiliséTestDriven.NETpour exécuter des tests unitaires comme je l'ai codé. Aussi, j'ai utiliséRégulateur de vitesse .NETpour regarder SVN et vérifier que chaque nouveau commit se construit et passe tous les tests unitaires.

La source
Translate

C'est probablement un résumé de ce qui a déjà été dit, mais pour TDD, j'utilise personnellement Rhino Mocks et MBUnit. Rhino Mocks est un framework moqueur gratuit et open source. L'avantage de Rhino Mocks est que nous n'avons pas besoin d'utiliser des cordes magiques pour définir vos attentes comme vous le faites dans NMock.

J'aime MBUnit car MbUnit a le concept de RowTests qui vous permet de varier vos entrées à votre méthode de test. MBUnit est également disponible gratuitement.

Vous voulez également vous assurer que tout ce que vous choisissez pour votre infrastructure de test unitaire est pris en charge par votre CI (Continuous Integration Server). Nunit est pris en charge par défaut dans Cruise Control.NET et vous devez faire un peu de travail supplémentaire pour que MBUnit fonctionne dans ccnet.

Du point de vue IDE, vous devez avoir TestDriven.NET. TestDriven.NET vous permet de faire un clic droit et d'exécuter des tests dans l'EDI et il prend en charge MBUnit et Nunit et d'autres.

NBehave est la bibliothèque BDD que j'ai utilisée. Je n'en ai pas utilisé d'autres, donc je n'ai pas pu les comparer et les comparer avec vous, mais NBehave est pris en charge par Gallio de l'équipe MBUnit, ce qui signifie que vous pouvez exécuter vos tests BDD comme vous le feriez avec vos tests unitaires avec TestDriven.NET.

Je recommanderais également vivement Resharper. Vous constaterez que votre productivité augmente considérablement avec cet outil de refactoring et de guidage. Il vous aidera à changer votre code pendant que vous développez vos tests.

J'espère que cela t'aides

La source
Translate

Je vais devoir mettre un cri pourMoq. C'est un cadre moqueur propre et léger qui vous aide à vous guider dans le gouffre du succès.

Les outils de test intégrés à TFS sont corrects, ils feront le travail mais peuvent souvent être un peu compliqués à utiliser. Les rapports générés, la couverture du code et quelques autres parties sont particulièrement mauvais, ils vous rendent chauve à 22 au lieu de 50.

Si vous aimez vraiment les tests, pensez à essayer une intégration continue. Vous ressentirez rapidement la douleur de la régression et vous aiderez potentiellement à atteindre l'objectif final plus rapidement.

Indépendamment de ce que vous faites, essayez-en quelques-uns et voyez lequel est le plus naturel, si vous avez le temps. Bonne chance et bon codage.

La source
Translate

Utiliser nUnit avec TFS n'est pas trop difficile. Il y a même un projet sur codeplex pour implémenter ceci:NUnit pour Team Buildqui «publie» même les résultats dans l'entrepôt.

Je ne l'ai pas essayé - mais je conseillerais aux clients qui ont un investissement important (ou qui ont une forte préférence pour celui-ci par rapport à l'outil MSTest) dans nUnit qui souhaitent implémenter TFS de continuer avec nUnit plutôt que d'essayer de convertir tous leurs tests existants.

La source
Translate

NUnitest disponible àhttp://www.nunit.orgJe suggérerais cela même lorsque vous travaillez sur la pile MS - la prise en charge des frameworks non MS se produit dans les aperçus MVC, ce qui montre un mouvement définitif dans la bonne direction pour nous permettre à tous de personnaliser nos piles pour s'adapter.

La source
Translate

NUnit est toujours l'un de mes préférés. Cependant, si vous utilisez TFS comme contrôle de code source, je vous suggère de vous en tenir à Microsoft Stack.

La source
Eileen Lee
Translate

Je recommande ce qui suit:

TestDriven.NET- Module complémentaire de test unitaire pour VS qui est entièrement intégré à tous les principaux frameworks de test unitaire, y compris NUnit, MbUnit, etc.

Isolateur Typemock- Un cadre moqueur pourTest unitaire .Net

NUnit- Un framework de test unitaire open source en C #.

La source
Translate

Pour mon projet, j'ai utilisé NUnit et TestDriven.NET avec beaucoup de succès. Vous pouvez soit créer une bibliothèque distincte juste pour héberger votre code de test, soit la placer dans votre exécutable ou bibliothèque. Tout dépend si vous voulez que votre code de production soit lié à votre code de test.

Pour l'injection de dépendances, j'utiliseNInjecterdans mon projet actuel et son excellent travail. Si vous utilisez l'injection de constructeur, vous n'avez pas besoin d'encombrer votre code avec l'attribut [Inject].

Je n'ai pas utilisé de bibliothèque fictive pour mon projet .NET 2.0 mais pour un autre projet .NET 3.5 que j'utiliseraiMoq

Notez que tout cela fonctionne avec .NET 2.0 et supérieur. (sauf Moq)

La source