C'est difficile...
Pour moi, un test unitaire vérifie un élément spécifique de la logique de l'entreprise. isolement . En d'autres termes, je prends une certaine logique, je l'extrais du reste (si nécessaire en simulant des dépendances) et je teste uniquement cette logique - une unité (de l'ensemble) - en explorant différents types de flux de contrôle possibles.
Mais d'un autre côté, pouvons-nous toujours dire à 100% si c'est correct ou incorrect ? Sans vouloir devenir philosophe, mais - comme aussi Michael dit dans son poste :
Les tests qui le font ces choses ne sont pas mauvaises. Souvent, ils valent la peine d'être écrits et ils peuvent être écrits dans un harnais de tests unitaires. Cependant, il est important de pouvoir les les séparer des véritables tests unitaires afin que nous puissions garder un ensemble de tests que nous pouvons exécuter rapidement chaque fois que nous changements.
Alors pourquoi ne pourrais-je pas écrire un test unitaire qui vérifie la logique de l'analyse d'un fichier xls, par exemple, en accédant à un fichier factice du système de fichiers dans mon dossier de test (comme les tests MS le permettent avec le DeploymentItem) ?
Bien sûr - comme mentionné - nous devrions séparer ce type de tests des autres (peut-être dans une suite de tests séparée dans JUnit). Mais je pense que l'on devrait aussi écrire ces tests si l'on se sent à l'aise de les avoir là... clairement, en se rappelant toujours qu'un test unitaire doit juste tester une pièce de manière isolée.
Le plus important à mes yeux est que ces tests fonctionnent rapidement et ne prennent pas trop de temps s.t. Ils peuvent être exécutés de manière répétée et très souvent.