Cet article est un résumé du livre " Principes des tests unitaires ".
Commençons par lister les propriétés de bons tests unitaires.
D'abord. Intégré au cycle de développement. Seuls les tests que vous utilisez activement sont utiles; sinon cela n'a aucun sens de les écrire.
Deuxième. Seules les parties les plus importantes de votre code sont testées. Tous les codes fonctionnels ne méritent pas la même attention.
La troisième. Fournit une protection maximale contre les bogues avec des coûts de maintenance minimaux. Pour ce faire, vous devez être capable de reconnaître les tests efficaces et de les rédiger.
Cependant, reconnaître et rédiger un test efficace sont deux compétences différentes. Et pour acquérir la deuxième compétence, vous devez d'abord maîtriser la première. Le reste de cet article vous montrera comment reconnaître un test efficace. La pyramide des tests et des tests selon le principe «boîte noire» / «boîte blanche» sera également considérée.
Quatre aspects des bons tests unitaires
Un bon test unitaire doit avoir les attributs suivants: protection contre les bogues, résistance au refactoring, retour rapide et facilité de maintenance.
Ces quatre attributs sont fondamentaux. Ils peuvent être utilisés pour analyser n'importe quel test automatisé, qu'il s'agisse de tests unitaires, d'intégration ou de bout en bout.
Commençons par le premier attribut d'un bon test unitaire: la protection contre les bogues. Un bogue (ou régression) est un bogue logiciel. En règle générale, de telles erreurs se produisent après avoir apporté des modifications au code.
Plus il y a de fonctionnalités, plus la probabilité que vous ajoutiez un bogue à la nouvelle version est élevée. C'est pourquoi il est si important de développer une bonne protection contre les bogues. Sans une telle protection, il sera impossible ou très difficile d'assurer la croissance du projet sur le long terme en raison du nombre d'erreurs en constante augmentation.
Pour évaluer les performances d'un test en termes de protection contre les bogues, tenez compte des éléments suivants:
la quantité de code exécuté par le test;
la complexité de ce code;
l'importance de ce code en termes de logique métier.
, , . , (assertions).
, -. , -, — .
, . - -.
- — . , .
. : . — .
. : , , . , , . , .
? . - . , .
:
, . . .
. -, . , .
?
, , . , . : . — , , .
— , . , , . — , .

- ( ) . , . - : , .
, . ( ), , ( ).
, , , : ( ).

, , . : . . — II .
, : , . . .
: , . :
( , );
( , ).
. 3, . — (), . — (), .

:
-. , . . , , , .
. :
. . , .
. , , .
. «» : , .
, . , .
? , . , — , — . : .
, . , . , , .
— (end-to-end) . . , , .
, . , , , . - , .
: . , , . .
— . , .

, . , , . - , .
- , , . : , .

— — , (end-to-end) . - , . . , .
. ; . , . , , . .
, ; . .

? : , . . , . , .
- CAP. , : (consistency) , (availability), (partition tolerance).
:
1. CAP ;
2. . — , , - Amazon — . .
: -, , .
. . , . , . . , .


. : ; - — ; - .
, – . : . , .
. - , -, — . ; , , (, ). CRUD- - .
— API, (, ). . , . , — .
« » « »
« » . . , , , .
« » . . , .

, : , . « ». — , -, — « » , -. -, .
-
Aspects des bons tests unitaires
À quoi servent les tests d'intégration?