Question

Les tests unitaires consistent, en gros, à tester des bits de votre code isolément avec le code de test.Les avantages immédiats qui me viennent à l’esprit sont :

  • L'exécution des tests devient automatisable et reproductible
  • Vous pouvez tester à un niveau beaucoup plus granulaire que les tests pointer-cliquer via une interface graphique

Rytmis

Ma question est la suivante : quelles sont les « meilleures pratiques » actuelles en termes d'outils ainsi que quand et où utiliser les tests unitaires dans le cadre de votre codage quotidien ?

Essayons d'être quelque peu indépendant du langage et de couvrir toutes les bases.

Était-ce utile?

La solution

Ok, voici quelques bonnes pratiques de quelqu'un qui ne fait pas de tests unitaires autant qu'il le devrait... tousser.

  1. Assurez-vous que vos tests testent unchose et une seule chose.
  2. Écrivez des tests unitaires au fur et à mesure.De préférence avant vous écrivez le code que vous testez.
  3. Ne testez pas unitairement l’interface graphique.
  4. Séparez vos préoccupations.
  5. Minimisez les dépendances de vos tests.
  6. Comportement simulé avec se moque.

Autres conseils

Vous voudrez peut-être regarder TDD sur trois fiches et Trois fiches pour mémoriser facilement l'essence du développement piloté par les tests:

Carte n°1.Les trois lois de l'oncle Bob

  • N'écrivez aucun code de production, sauf pour réussir un test d'échec.
  • Écrivez juste assez de test pour démontrer un échec.
  • Écrivez seulement suffisamment de code de production pour réussir le test.

Carte n°2 :PREMIERS Principes

  • Rapide:Une vitesse incroyablement rapide, comme en centaines ou en milliers par seconde.
  • Isolé:Le test isole clairement un défaut.
  • Répétable :Je peux l'exécuter à plusieurs reprises et il réussira ou échouera de la même manière à chaque fois.
  • Auto-vérification :Le test est sans ambiguïté réussite-échec.
  • Opportun:Produit en phase avec de minuscules modifications de code.

Carte n°3 :Noyau de TDD

  • Rouge:le test échoue
  • Vert:les tests réussissent
  • Refactoriser :code propre et tests

La dite xUnité Le cadre est largement utilisé.Il a été initialement développé pour Smalltalk sous le nom de SUnit, a évolué vers JUnit pour Java et dispose désormais de nombreuses autres implémentations telles que NUnit pour .Net.C'est presque une norme de facto - si vous dites que vous utilisez des tests unitaires, la majorité des autres développeurs supposeront que vous parlez de xUnit ou similaire.

Une excellente ressource pour les « meilleures pratiques » est le Blog de tests Google, par exemple un article récent sur Écrire du code testable est une ressource fantastique.Plus précisément, leurs articles hebdomadaires de la série « Tests sur les toilettes » sont parfaits pour être publiés autour de votre cube ou de vos toilettes, afin que vous puissiez toujours penser aux tests.

La famille xUnit constitue le pilier des tests unitaires.Ils sont intégrés à Netbeans, Eclipse et de nombreux autres IDE.Ils offrent une solution simple et structurée aux tests unitaires.

Une chose que j'essaie toujours de faire lors de l'écriture d'un test est de minimiser l'utilisation du code externe.Je veux dire par là :J'essaie de minimiser autant que possible le code d'installation et de démontage pour le test et j'essaie d'éviter autant que possible d'utiliser d'autres modules/blocs de code.Un code modulaire bien écrit ne devrait pas nécessiter trop de code externe lors de sa configuration et de son démontage.

NUnit est un bon outil pour tous les langages .NET.

Les tests unitaires peuvent être utilisés de plusieurs manières :

  1. Logique de test
  2. Augmenter la séparation des unités de code.Si vous ne pouvez pas tester entièrement une fonction ou une section de code, alors les parties qui la composent sont trop interdépendantes.
  3. Piloter le développement, certaines personnes écrivent des tests avant ils écrivent le code à tester.Cela vous oblige à réfléchir à ce que vous voulez que le code fasse faire, puis vous donne une indication précise du moment où vous avez atteint cet objectif.

N'oubliez pas le support du refactoring.ReSharper sur .NET fournit une refactorisation automatique et des correctifs rapides pour le code manquant.Cela signifie que si vous écrivez un appel à quelque chose qui n'existe pas, ReSharper vous demandera si vous souhaitez créer la pièce manquante.

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