我有一个测试,它执行一个循环来运行相同的测试,但使用不同的输入。问题是当一个断言失败时,测试停止,并且标记为一个测试失败。如何使用junit从单一方法运行differents测试
下面是代码:
@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");
}
在这种情况下,该方法TEST1和TEST2,执行两个不同的测试,但在他们里面,我做一个循环来检查返回的每一个项目的一些东西由收藏。但是我想要的是将每个项目的测试视为一个不同的项目,以便在其中一个项目失败时,其他项目继续执行,并且我可以看到哪个项目失败以及总共失败多少项目。
您可能想看看参数化测试 –