我在一个类中进行了一些测试,这些测试都依赖于setup方法中设置的变量。因此,如果我可以使用不同的全局变量多次运行所有测试,那将是一件好事。
我知道您可以使用Theory
进行单次测试,但我想将其用于所有测试。我的第一种方法导致错误,即设置方法不能有任何参数。
我有解决方法吗?我不想在类中注释每个单独的测试,并添加一些配置逻辑,如果这可以在中央设置方法中处理。
答案 0 :(得分:2)
你看过Parameterized吗?
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][] { { 0, 0 }, { 1, 1 }, { 2, 1 },
{ 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });
}
private int fInput;
private int fExpected;
public FibonacciTest(int input, int expected) {
fInput= input;
fExpected= expected;
}
@Test
public void test() {
assertEquals(fExpected, Fibonacci.compute(fInput));
}
}
FibonacciTest的每个实例都将使用双参数构造函数和@Parameters方法中的数据值构造。