Discuter des cinq questions auxquelles chaque test unitaire doit répondre

Dans cet épisode de React Wednesday, nous discutons avec Eric Elliott des questions auxquelles chaque test unitaire doit répondre et comment créer un code plus modulaire, réutilisable et débuggable.
Enfin, les tests unitaires ne sont plus ce que vous avez dit J'arriverais finalement à et éviterais volontairement. Eric Elliott a abandonné une classe de maître en tests, avec des démonstrations et du codage en direct, couvrant des choses comme «Les cinq questions à chaque test unitaire doit répondre», l'importance de RITE et comment les tests font de vous un meilleur développeur de logiciels. L'interview d'Eric est riche de sagesse et de clarté.
Dans notre édition du 7 octobre 2020 de React Wednesday nous avons accueilli Eric Elliott Jesse et Sergio pour discuter des tests unitaires dans React . Au cours de l'émission, nous avons discuté des subtilités des tests unitaires et regardé une démonstration en direct des tests unitaires de construction d'une application React. Cette émission a été particulièrement intéressante pour moi et mes collègues de Digital Primates car nous utilisons les matériaux d’Eric dans notre programme de formation pour les nouveaux consultants qui travaillent sur les applications Enterprise React. L'enregistrement complet de notre émission sur React Unit Testing avec Eric Elliott est disponible sur YouTube .
Eric Elliott est un auteur prolifique, un mentor, un conseiller et un développeur. Dans le cadre de son travail, il dirige DevAnywhere un programme de mentorat à distance 1: 1 utilisant des réunions vidéo avec partage d'écran et codage pratique. Jesse est membre du programme et sert également de mentor. Sergio est un mentoré actif dans DevAnywhere et donne d'excellentes critiques de code.
Eric a ouvert la discussion avec une masterclass concise sur la conception de tests appropriés (1:51) . De nombreux développeurs conviennent que les tests sont nécessaires, mais ne comprennent pas encore comment écrire tests de qualité. Les conseils d'Eric sont clairs et accessibles et tiennent sur une note autocollante. Les développeurs de React feraient bien de le placer sur leur moniteur pour référence.
Son premier point est de rendre les composants testables grâce à une conception appropriée des composants. React fournit des mécanismes pour séparer les éléments visuels de la logique métier et de l'état. Les composants avec des préoccupations correctement séparées sont plus faciles à tester, et plus faciles à utiliser et à réutiliser. Il a ensuite expliqué les cinq questions auxquelles chaque test unitaire doit répondre .
The Five Des questions Chaque test unitaire doit répondre
Eric a développé un guide mental pour aider les développeurs de logiciels à s'assurer qu'ils écrivent des tests de bonne qualité. Il a résumé les points en cinq questions.
- Quelle est l'unité testée (module, fonction, classe, peu importe)?
- Que doit-il faire? (Description en prose)
- Quel était le résultat réel?
- Quel était le résultat attendu?
- Comment reproduisez-vous l'échec?
Il explique la réflexion derrière chaque point, ainsi que pourquoi chacun est important
Un autre point pour le pense-bête est l'acronyme d'Eric sur les éléments d'un bon test. Cet acronyme est RITE:
- Readable – Le test doit être explicite.
- Isolé pour les tests unitaires – Les tests ont leur propre configuration et état. Aucun élément mutable n'est partagé entre les tests.
- Intégré – Les tests d'intégration sont également des tests importants pour valider ce qui se passe lorsque des éléments sont combinés.
- Complet – Testez tous les cas de bord, conditions d'erreur et limites probables. Pensez à écrire d'abord le test, puis le code.
- Explicit – Placez tous les éléments nécessaires pour entreprendre le test dans le code de test (configuration des données, fonctions d'usine, logique de suppression).
d'offrir des conseils aux développeurs qui partageait ce sentiment (10:51) .
Eric a expliqué que l'écriture de code testable encourage la modularité et que les logiciels modulaires sont le plus souvent mieux conçus et mis en œuvre. Modulariser le code pour les tests aide le développeur de logiciels à créer des logiciels que je s faciles à entretenir et des composants plus faciles à utiliser.
Du point de vue de la gestion, les pratiques de développement piloté par les tests renforcent la confiance dans les équipes de développement pour expédier le code sans craindre qu'un effet secondaire inattendu ait un impact sur la production.
dit qu'une bonne suite de tests est la meilleure documentation technique que vous puissiez avoir, car elle est granulaire et garantie de ne pas se désynchroniser avec le code, contrairement à la documentation écrite.
Démonstration en direct
Jesse a commencé une démonstration de codage en direct du code de construction et de test (15:49) . Son exemple se composait de deux éléments:
- Composant 1 – Prend du texte via un formulaire d'entrée
- Composant 2 – Affiche le texte accumulé sous forme de liste +
Nous avons regardé Jesse construire les deux composants et ajouter les tests appropriés pour les 20 prochains minutes. Au cours du processus, lui et Eric ont expliqué le code source ainsi que les raisons et la stratégie derrière chaque décision.
RITEway, une bibliothèque open-source pour des tests unitaires simples, lisibles et utiles conformes aux «Cinq questions». RITEway vous oblige à écrire R eadable, I solated, et E xplicit tests, parce que c'est la seule façon d'utiliser l'API. La méthode RITEway d'écriture des tests est très simple et facile à lire. Elle évolue également au fur et à mesure que les tests s'accumulent. RITEway semble être une solution avantageuse bibliothèque pour structurer et exécuter des tests. Si vous êtes nouveau dans les tests ou si vous êtes intéressé par RITEway, assurez-vous de regarder ce segment. Il existe de nombreuses sections intéressantes telles que:
- Quels sélecteurs utiliser?
- Qu'est-ce qui nécessite un test,
- Quel est le rôle du Behavior Driven Development (BDD)?
- alliez le code hérité s'il a des tests?
- Et les tests des réducteurs Redux?
Pour clore le spectacle (56:14), j'ai donné l'impression que la construction de tests unitaires avec RITEway était très facile à faire et ne distrait pas du tout du travail de développement . Eric a répondu avec ce qui pourrait être le conseil le plus émouvant:
Les avantages [Of TDD] sont monumentaux … J'ai commencé à être beaucoup plus rapide avec TDD qu'avant de commencer à utiliser TDD même si j'écris deux, trois ou quatre fois plus de code. Ce n'est pas de taper les caractères qui prend du temps. Ce qui prend du temps dans la programmation, c'est de réfléchir à ce qu'un composant doit faire, comment il doit se rapporter aux autres composants du système et à l'architecture du système. TDD vous aide à réfléchir à ce processus de manière à écrire du code plus modulaire, plus réutilisable et plus débuggable. —Eric Elliott
Nous avons beaucoup appris de notre temps avec Eric, Jesse et Sergio et nous sommes heureux de mettre l'enregistrement à votre disposition sur la playlist YouTube de React Wednesdaydays. Si vous souhaitez plus d'informations, consultez le livre d'Eric Composing Software et Eric's YouTube Channel . Si vous souhaitez vous tenir au courant de sujets comme ceux-ci, vous pouvez vous abonner à la Newsletter Enterprise React . De nouveaux problèmes surviennent toutes les deux semaines.
Si tout cela vous semble intéressant et que vous cherchez un moyen d'améliorer vos compétences en test et en développement de logiciels, consultez DevAnywhere. Eric a conçu DevAnywhere pour élever les développeurs professionnels aux plus hauts niveaux d'excellence technique. Les offres de mentorat conviennent à quiconque crée des applications JavaScript ou dirige des équipes de développement JavaScript. En tant que développeur de logiciels initialement autodidacte, j'apprécie la façon dont les sessions 1: 1 peuvent s'adapter à des besoins particuliers.
React Wednesday est une émission hebdomadaire en direct animée par T.J. VanToll de Progress, et moi-même, Dan Wilson de Digital Primates. Chaque semaine, des invités présentent et discutent des sujets les plus intéressants de l'écosystème React. Vous pouvez trouver des informations sur l'émission, ainsi que sur les épisodes à venir et précédents sur le site Web React Wednesdaydays .
Source link