【发布时间】:2017-05-22 15:49:55
【问题描述】:
如果参数化 junit4 testing 可行,我一直在搜索任何文档。
基本上我有两个类,GameEntry 和 Scoreboard:
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
}
我已经阅读过参数化测试,您可以在其中返回一组不同的输入数据Passing arrays to Parameterized JUnit,但这并不是我想做的。我有兴趣运行 10 个不同的测试,在这些测试中,我将创建一个输入文本文件,其中包含 gameEntries 名称、分数值,以及另一个用于名称和分数的预期值的文本文件。我想将所有数据保留在测试类之外,以防我以后想更改数据。在输入和预期的文件被解析之后,我将只使用Assert.assertArrayEquals( expectedResult, result ) 来比较数组。
如果没有参数化的Junit 测试,我不应该有任何问题,但是如果一个测试失败,整个测试就会失败。我想我可以保留一个计数器来跟踪输入。我只想写一个测试来避免 DRY。这对Junit 或其他testing framework 是否可行?
【问题讨论】:
-
您可以使用 TestNG,其中数据提供者可用于解决此类问题。尽管即使使用 TestNG,如果一个测试用例针对一个条目失败,该测试也会中止该用例。
标签: java unit-testing parameterized