我写了一个长参数化测试,其中一个参数是一个构造函数调用,使用双括号语法为二维数组的每一行构造一个不同的对象:
Object[][] data = new Object[][] {
{ 1, 2, 3, new Blah() {{ setA(); }} }
{ 1, 2, 3, new Blah() {{ setB(); }} }
...
由于 JUnit 的理念是在每个 @Test 上调用测试用例构造函数,我假设它会对参数化测试执行相同的操作 - 但我看到它只是调用该构造函数(为参数化测试定义的构造函数)每行一次,而不是每行每次测试一次。
因此,测试字段在全局范围内运行,并且测试相互影响。我想知道是否有一种方法可以强制运行器为每个测试调用构造函数,就像常规的 JUnit 运行器一样。谷歌和 JUnit 页面在这个案例上没有帮助我。我真的不想重写整个测试,在这一点上它是广泛且相当可读的。