学生在这里。在JUnit 5中,根据另一个测试是成功还是失败来实现条件测试执行的最佳方式是什么?我假设它将涉及ExecutionCondition,但我不确定如何继续。有没有一种方法可以在不向测试类添加我自己的状态的情况下完成此操作?
需要注意的是,我知道依赖Assert,但是我有多个嵌套的测试,它们表示不同的子状态,所以我希望有一种方法在测试级别上实现这一点。
示例:
@Test
void testFooBarPrecondition() { ... }
// only execute if testFooBarPrecondition succeeds
@Nested
class FooCase { ... }
// only execute if testFooBarPrecondition succeeds
@Nested
class BarCase { ... }
2条答案
按热度按时间q9rjltbz1#
您可以通过在@BeforeEach/@BeforeAll设置方法中提取公共前提逻辑来解决这个问题,然后使用假设,这是为了执行条件测试而开发的。
}
vwhgwdsa2#
@嵌套测试为测试编写者提供了更多的功能来表达几组测试之间的关系。这种嵌套测试使用Java的嵌套类,并促进了对测试结构的分层思考。下面是一个详细的示例,既作为源代码,也作为IDE中执行的屏幕截图。
正如
JUnit 5
文档中所述,@Nested
是为了方便在IDE中显示而使用的。我宁愿在依赖Assert中使用假设作为前提条件。