Je suis arrivé à quelque chose d'un carrefour. J'ai récemment écrit une application de 10 000 lignes sans TDD (une erreur que je connais). J'ai certainement rencontré un très grand nombre d'erreurs mais maintenant je veux rééquiper le projet. Voici le problème que j'ai rencontré. Prenons un exemple d'une fonction qui fait la division:Comment TDD fonctionne-t-il avec les exceptions et la validation des paramètres?
public int divide (int var1, int var2){
if (var1 == 0 || var2 == 0)
throw new RuntimeException("One of the parameters is zero");
return var1/var2;
}
Dans cette situation, je lance une erreur d'exécution afin que je puisse échouer et au moins savoir que mon code est cassé quelque part. La question est 2 fois. Premièrement, est-ce que je fais l'utilisation correcte des exceptions ici? Deuxièmement comment écrire un test pour travailler avec cette exception? Évidemment, je veux qu'il passe le test, mais dans ce cas, il va lancer une exception. Je ne sais pas très bien comment cela fonctionnerait. Existe-t-il une manière différente de traiter ceci avec TDD?
Merci
IllegalArgumentException (ou l'équivalent sinon Java) doit être utilisé au lieu de RuntimeException ordinaire. –
Vous ne pouvez pas convertir TDD en code existant. Vous pouvez écrire des tests unitaires sur du code existant, mais ce n'est pas TDD. TDD est un processus ** design ** dans lequel vous écrivez les tests ** first **. Je suggère d'écrire des tests unitaires pour les interfaces publiques clés de votre code existant, et d'envisager d'utiliser TDD lors de l'ajout de nouvelles classes ou méthodes. – TrueWill