Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/134.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
Java 如何使用junit从一个方法运行不同的测试_Java_Junit - Fatal编程技术网

Java 如何使用junit从一个方法运行不同的测试

Java 如何使用junit从一个方法运行不同的测试,java,junit,Java,Junit,我有一个测试,它循环运行相同的测试,但输入不同。问题在于,当一个断言失败时,测试就会停止,并被标记为一个测试失败 代码如下: @Test public void test1() throws JsonProcessingException { this.bookingsTest(Product.ONE); } @Test public void test2() throws JsonProcessingException { this.bookingsTest(Product.

我有一个测试,它循环运行相同的测试,但输入不同。问题在于,当一个断言失败时,测试就会停止,并被标记为一个测试失败

代码如下:

@Test
public void test1() throws JsonProcessingException {
    this.bookingsTest(Product.ONE);
}

@Test
public void test2() throws JsonProcessingException {
    this.bookingsTest(Product.TWO);
}

public <B extends Sale> void bookingsTest(Product product) {

    List<Booking> bookings = this.prodConnector.getBookings(product, 100);

    bookings.stream().map(Booking::getBookingId).forEach((bookingId) -> {
        this.bookingTest(bookingId);
    });
}

public <B extends Sale> void bookingTest(String bookingId) {
    ...
    // Do some assert:
    Assert.assertEquals("XXX", "XXX");
}
@测试
public void test1()引发JsonProcessingException{
本次预订测试(产品一);
}
@试验
public void test2()引发JsonProcessingException{
本次预订测试(产品二);
}
公共无效预订测试(产品){
List bookings=this.prodConnector.getBookings(产品,100);
bookings.stream().map(Booking::getBookingId).forEach((bookingId)->{
此.bookingTest(bookingId);
});
}
公共无效bookingTest(字符串bookingId){
...
//做一些断言:
Assert.assertEquals(“XXX”、“XXX”);
}

在这种情况下,方法test1和test2作为两个不同的测试执行,但在它们内部,我循环检查集合返回的每个项上的一些内容。但我想做的是将每个项目上的测试视为不同的测试,这样,如果一个失败,其他项目将继续执行,我可以看到哪个失败,以及总共有多少失败。

您描述的是参数化测试。有很多框架可以帮助您。它们只是具有不同的简单性与功率比。挑一个适合你需要的


junit的原生方式是,但它非常冗长。您可能会发现其他有用的junit插件是或。如果没有强制您使用junit和/或纯java,您可以尝试或。

您可能想看看参数化的TestsHanks!我要用@Parameterized,我不知道