J'ai recherché sur toute la documentation si cela est possible avec junit4 testing
paramétré.Comment tester la matrice pour l'égalité avec plusieurs données d'entrée
En fait ce que j'ai est deux classes, GameEntry et Tableau de bord:
public class GameEntry{
private String name;
private int score;
// Constructor and Getters...
}
public class Scoreboard{
private int numEntries = 0;
private GameEntry[] board;
// Constructor
public Scoreboard(int capacity){
board = new GameEntry[capacity];
}
// Add method - Only if entry is higher than current entries
public void add(GameEntry e){
// Code here...
}
// Remove method
// Reset method
}
J'ai lu au sujet des tests paramétrés où vous retournez un tableau de différentes données d'entrée Passing arrays to Parameterized JUnit, mais il est pas tout à fait ce que je voudrais faire. Je suis intéressé par l'exécution de 10 tests différents où je voudrais créer un fichier texte d'entrée avec le nom de gameEntries, les valeurs de score, et un autre fichier texte pour les valeurs attendues pour le nom et le score. Je voudrais garder toutes les données hors de la classe de test au cas où je voudrais changer les données plus tard. Après l'entrée, et les fichiers attendus ont été analysés, alors je voudrais simplement utiliser Assert.assertArrayEquals(expectedResult, result)
pour comparer le tableau.
Je n'aurais aucun problème à le faire sans un test Junit
paramétré, mais si un test échoue, tout le test échouerait. Je suppose que je pourrais garder un compteur pour suivre les entrées. Je voudrais écrire un seul test pour éviter DRY. Est-ce possible avec Junit
ou autre testing framework
?
Vous pouvez utiliser TestNG, où les fournisseurs de données sont disponibles pour résoudre des problèmes de ce type. Même avec TestNG si un cas de test échoue pour une entrée, le test est annulé pour ce cas. – biziclop