Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以编程方式生成JUnit4测试_Junit_Junit4 - Fatal编程技术网

以编程方式生成JUnit4测试

以编程方式生成JUnit4测试,junit,junit4,Junit,Junit4,我有一个JUnit4测试,它创建测试数据并为每个数据断言测试条件。如果一切正常,我会得到一个绿色测试 如果一个数据未通过测试,则中断整个测试的执行。我想对每个数据进行一次JUnit测试。是否可以通过编程方式生成JUnit测试,以便在IDE中获得大量测试 采用这种方法的原因是为了更快地了解哪些测试失败,并在一个数据失败时继续其余的测试 听起来您想编写一个参数化测试(对不同的数据集执行完全相同的检查) 这是我们的课程。此示例显示了如何使用它: @RunWith(Parameterized.class

我有一个JUnit4测试,它创建测试数据并为每个数据断言测试条件。如果一切正常,我会得到一个绿色测试

如果一个数据未通过测试,则中断整个测试的执行。我想对每个数据进行一次JUnit测试。是否可以通过编程方式生成JUnit测试,以便在IDE中获得大量测试


采用这种方法的原因是为了更快地了解哪些测试失败,并在一个数据失败时继续其余的测试

听起来您想编写一个参数化测试(对不同的数据集执行完全相同的检查)

这是我们的课程。此示例显示了如何使用它:

@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:如果这有帮助,那么你应该投票支持我的答案(甚至接受它),以此来暗示这一点。当然!我只是想检查我的问题的解决方案。所以:它工作得很好!非常感谢。