Question

Je suis un cours en pratiques agiles et j'ai des devoirs. Ce qu'ils m'ont appris, c'est qu'avant de modifier le code (refactoring ou ajouter des fonctionnalités), je devrais ajouter un test, afin de gagner en confiance et assurer que je ne changerai pas le comportement pendant la refactorisation. Ceci est clair et a du sens, mais que se passe-t-il si le code n'est pas testable sans faire un peu de refactoring d'abord?

Exemple simple:

public class Summation
{
    private int addend1;
    private int addend2;

    public Summation(int addend1, int addend2)
    {
        this.addend1 = addend1;
        this.addend2 = addend2;
    }

    public int doSum()
    {
        System.out.println(addend1 + addend2);
    }

    // Getters/setters
}

Je voudrais exécuter un test d'acceptation / intégration à l'aide de l'ajustement et de vérifier que le tableau suivant est vérifié:

 ----------------------------
| addend1 | addend2 | result |
 ----------------------------
| 1       | 1       | 2      |
 ----------------------------
| 1       | -1      | 0      |
 ----------------------------
| -1      | 1       | 0      |
 ----------------------------
| -1      | -1      | -2     |
 ----------------------------

Mais, parce que la fonction doSum() Imprime la somme du flux de sortie standard, il est difficile d'écrire un test pour cela (je préfère éviter d'intercepter la sortie standard). Il serait plus logique de refacter légèrement le code afin d'avoir une méthode qui renvoie la somme. Mais parce que je suis techniquement "pas autorisé" à modifier le code avant d'écrire un test, cela n'est pas recommandé.

Pouvez-vous me donner des indices? Comment allez-vous procéder?

Merci!

Était-ce utile?

La solution

Cela semble similaire à cette question.

Que vous soyez ou non autorisé à modifier le code, vous êtes obligé d'intercepter le flux de sortie standard. En tout cas, cela fait partie du comportement.

Autres conseils

Vous pouvez écrire un fichier test.cpp pour appeler Summer.Summation (x, y) avec diverses valeurs pour x et y dans votre tableau et vérifier / enregistrer les résultats. Assurez-vous que les résultats sont ce que vous attendez. Ensuite, vous pouvez maintenant modifier la classe de sommation et exécuter à nouveau vos tests (à partir de test.cpp) pour vous assurer que les valeurs sont les mêmes qu'elles l'étaient initialement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top