Question

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

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

Était-ce utile?

La solution

Nous utilisons MoUnité et Rihno se moque et ils s'avèrent qu'ils fonctionnent très bien ensemble.Lorsque vous effectuez du TDD, vous devrez presque certainement effectuer une forme d'injection de dépendances, bien que cela puisse être fait manuellement, cela vaut la peine de regarder un conteneur IoC tel que Château de Windsor.

Cela vaut la peine de regarder les screencasts de John Paul Bodhood pour commencer. Le blog de JPB

Autres conseils

NUnit et Rhino conviennent bien et le conteneur auto-moqueur pourrait être intéressant.

Si vous regardez aussi BDD, alors NComportez-vous est probablement un bon choix.Si toutefois vous parlez simplement du style de BDD lié aux tests unitaires (xSpec), vous pouvez vous en sortir en ajoutant un framework (bien que des choses comme spéculum ajoutez un peu de sucre syntactique), mais vous voudrez peut-être regarder MSpec est également intéressant.

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

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

Pour une bibliothèque d'objets simulés, j'ai trouvé la licence BSD Rhino.Mocks être plutôt agréable.

J'ai eu beaucoup de succès en utilisant NUnité aussi.

J'ai également utilisé NMock lorsque le besoin s'est fait sentir d'objets simulés.En prime, l'usine permettant de créer vos objets fictifs s'appelle la Moquerie.

Pour faciliter l'exécution des tests unitaires, j'ai utilisé TestDriven.NET pour exécuter des tests unitaires pendant que je codais.De plus, j'ai utilisé Régulateur de vitesse .NET pour regarder SVN et vérifier que chaque nouveau commit construit et réussit tous les tests unitaires.

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 dans votre méthode de test.MBUnit est également disponible gratuitement.

Vous voulez également vous assurer que tout ce que vous choisissez pour votre cadre de tests unitaires 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 effectuer un peu de travail supplémentaire pour que MBUnit fonctionne dans ccnet.

Du point de vue de l'IDE, vous devez disposer de TestDriven.NET.TestDriven.NET vous permet de cliquer avec le bouton droit et d'exécuter des tests dans l'EDI et prend en charge MBUnit, Nunit et autres.

NBehave est la bibliothèque BDD que j'ai utilisée.Je n'en ai pas utilisé d'autres, je n'ai donc pas pu 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 pour vos tests unitaires avec TestDriven.NET.

Je recommanderais également fortement Resharper.Vous constaterez que votre productivité augmentera considérablement grâce à cet outil de refactorisation et de guidage.Il vous aidera à modifier votre code au fur et à mesure que vous développez vos tests.

J'espère que cela t'aides

Je vais devoir crier pour Moq.Il s’agit d’un cadre moqueur et clair qui vous guide 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 lourds à utiliser.Les rapports générés, la couverture du code et quelques autres parties sont particulièrement mauvais, ils vous rendent chauve à 22 ans plutôt qu'à 50 ans.

Si vous aimez vraiment les tests, envisagez d'essayer l'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.

Utiliser nUnit avec TFS n'est pas trop difficile.Il existe même un projet sur codeplex pour implémenter ceci : NUnit pour la constitution d'équipe qui « 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 et qui sont intéressés par la mise en œuvre de TFS de continuer avec nUnit plutôt que d'essayer de convertir tous leurs tests existants.

NUnité est 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 certain dans la bonne direction pour nous permettre à tous de personnaliser nos piles pour les adapter.

NUnit est toujours l’un de mes favoris.Cependant, si vous utilisez TFS comme contrôle de code source, je vous suggère de vous en tenir à Microsoft Stack.

Je recommande ce qui suit :

TestDriven.NET - Module complémentaire de tests unitaires pour VS entièrement intégré à tous les principaux frameworks de tests unitaires, notamment NUnit, MbUnit, etc.

Isolateur de type Mock- Un cadre moqueur pour Tests unitaires .Net

NUnité - Un framework de tests unitaires open source en C#.

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

Pour l'injection de dépendances, j'utilise NInjecter dans mon projet actuel et son travail est excellent.Si vous utilisez l'injection Constructor, 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 j'utiliserai Moq

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top