2017-05-11 4 views
0

J'ai eu cette question particulièrement pendant que j'écrivais mon premier test unitaire. Il ne semble pas correct de taper de manière statique ces codes tiers, par exemple le type de valeurs de retour des fonctions utilitaires de test Enzyme/React et le type de fonction de rappel du framework de test. Je viens de penser que les API tiers sont comme (this) [https://github.com/airbnb/enzyme/blob/master/docs/api/shallow.md#shallowwrapper-api]] sont trop longs et très susceptibles d'être testés.Dois-je vérifier (de manière statique) les codes tiers (par exemple, en utilisant Flow)?

EDIT: j'ai précisé que lorsque j'ai dit vérification de type, je veux dire par vérification de type statique comme Flow, et non par test unitaire.

Répondre

0

Il y a deux côtés ici:

  • il n'est pas de votre responsabilité de vérifier l'intégrité des bibliothèques 3ème partie. Vous ne devriez pas essayer de tester les livraisons d'autres personnes. D'autre part, des tests bien écrits sont un bon moyen d'explorer un tel composant tiers.

Et plus important encore: une suite bien écrite de tests représente une spécification de vos attentes pour ce composant. Une spécification qui peut être exercée automatiquement! Signification: vous pouvez conserver ces tests et les utiliser pour vérifier par la suite que les nouvelles versions de ce composant font toujours ce que vous attendez d'elles. En d'autres termes: vous devez équilibrer ces deux points; par exemple en limitant vos tests aux fonctionnalités importantes utilisées par votre propre code.

0

Si vous demandez si vous devriez ajouter des tests unitaires dans votre base de code qui teste spécifiquement un paquet tiers, non, je ne le ferais pas. Ils pourraient mettre à jour leur paquet et vos tests échoueraient - vous n'avez aucun contrôle dessus (à moins que vous décidiez de ne jamais mettre à jour).

Il est préférable d'ajouter des tests unitaires à leur base de code par le biais d'une requête de tirage si vous voulez vous assurer qu'il a des tests. Sinon, vous ne devriez tester votre code.

Si vous voulez écrire des tests de bout en bout qui intègrent d'autres paquets, c'est bien. Mais je ne voudrais pas tester leurs caractéristiques spécifiques pour eux. Cela appartient à leur source.

+0

Merci @mariocatch! Je suis désolé, je n'étais pas clair, j'ai édité ma question pour clarifier que je voulais dire vérification de type à travers le vérificateur de type statique comme Flow, plutôt que par Thru Unit. (Ce que je pense, une fois fait ensemble, serait inutilement redondant, ai-je raison?) –

+0

Mais je pense même que c'est une vérification de type statique, votre réponse s'applique toujours, ai-je raison? –

+0

Vous en informant également, @GhostCat. Merci! –