以编程方式生成JUnit4测试
我有一个JUnit4测试,它创建测试数据并为每个数据断言测试条件。如果一切正常,我会得到一个绿色测试 如果一个数据未通过测试,则中断整个测试的执行。我想对每个数据进行一次JUnit测试。是否可以通过编程方式生成JUnit测试,以便在IDE中获得大量测试以编程方式生成JUnit4测试,junit,junit4,Junit,Junit4,我有一个JUnit4测试,它创建测试数据并为每个数据断言测试条件。如果一切正常,我会得到一个绿色测试 如果一个数据未通过测试,则中断整个测试的执行。我想对每个数据进行一次JUnit测试。是否可以通过编程方式生成JUnit测试,以便在IDE中获得大量测试 采用这种方法的原因是为了更快地了解哪些测试失败,并在一个数据失败时继续其余的测试 听起来您想编写一个参数化测试(对不同的数据集执行完全相同的检查) 这是我们的课程。此示例显示了如何使用它: @RunWith(Parameterized.class
采用这种方法的原因是为了更快地了解哪些测试失败,并在一个数据失败时继续其余的测试 听起来您想编写一个参数化测试(对不同的数据集执行完全相同的检查) 这是我们的课程。此示例显示了如何使用它:
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {{ 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } });
}
private final int input;
private final int expected;
public FibonacciTest(final int input, final int expected) {
this.input = input;
this. expected = expected;
}
@Test
public void test() {
assertEquals(expected, Fibonacci.compute(input));
}
}
@RunWith(参数化的.class)
公共级光纤通信测试{
@参数
公共静态收集数据(){
返回Arrays.asList(新对象[][{{0,0},{1,1},{2,1},{3,2},{4,3},{5,5},{6,8});
}
私人最终输入;
预计将举行私人决赛;
公共FibonacciTest(最终整数输入,预期最终整数){
这个输入=输入;
这个.预期的=预期的;
}
@试验
公开无效测试(){
assertEquals(预期,Fibonacci.compute(输入));
}
}
请注意,data()
方法返回test()
方法要使用的数据。该方法可以从任何地方获取数据(例如,存储在测试源中的数据文件)
此外,没有什么可以阻止您在这个类中使用多个
@Test
方法。这提供了一种在同一组参数上执行不同测试的简便方法。嗨,Joachim,非常感谢您的快速响应。听起来这正是我问题的解决办法。@Timo:如果这有帮助,那么你应该投票支持我的答案(甚至接受它),以此来暗示这一点。当然!我只是想检查我的问题的解决方案。所以:它工作得很好!非常感谢。