J'ai une méthode dans une classe qui écrit dans une chaîne, qui appelle une autre méthode qui fait la même chose. Quelque chose comme:Comment bouter une méthode individuelle dans Java pour les tests unitaires?
void foo() {
a += "xyx";
bar();
}
void bar() {
a += "abc";
}
Aux fins de tests unitaires, je veux tester foo et bar séparément. Est-il possible d'empêcher l'exécution de la barre lorsque j'appelle foo() ou de la remplacer par une autre méthode?
À quoi ressemblerait le code client? Comment instanciez-vous la classe qui remplace maintenant bar(). Donc, vous devrez changer le code (ou l'usine) qui instancie la nouvelle classe. Comme je l'ai dit plus bas, je pense que nous avons besoin de plus de détails sur le problème, en particulier, la source peut-elle être modifiée? –
Si vous décidez de le faire, sachez que votre test testera quelque chose de légèrement différent de la classe qu'il est supposé tester. Cela peut entraîner des trous dans votre couverture de test. – NamshubWriter
@AdrianMouat S'il s'agit d'un test unitaire, nous devrions pouvoir supposer que nous pouvons créer la classe qui est testée entièrement séparément. Si oui, nous devrions être en mesure de faire simple: new Clazz() {/ * put override ici * /} Cela signifie que la source n'a pas besoin d'être modifiée – Egwor