JUnit 5 的Assumptions类提供了一些静态方法,以支持基于假设的条件测试执行。如果假设失败,则会导致测试被中止。
假设通常用于继续执行给定的测试方法没有意义的情况。在测试报告中,这些测试将被标记为已通过。
JUnit Jupiter Assumptions 类有以下方法:

程序员导航
优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站
- assumeFalse()
- assumeTrue()
- assumingThat()
1.Assumptions.assumeTrue()
该 assumeTrue() 方法验证给定的假设为 true,如果假设为 true,则继续执行测试;否则,中止测试执行。
它有以下重载方法。
public static void assumeTrue(boolean assumption) throws TestAbortedException
public static void assumeTrue(boolean assumption, Supplier<String> messageSupplier) throws TestAbortedException
public static void assumeTrue(boolean assumption, String message) throws TestAbortedException
public static void assumeTrue(BooleanSupplier assumptionSupplier) throws TestAbortedException
public static void assumeTrue(BooleanSupplier assumptionSupplier, String message) throws TestAbortedException
public static void assumeTrue(BooleanSupplier assumptionSupplier, Supplier<String> messageSupplier) throws TestAbortedException
public class AppTest {
@Test
void testOnDev()
{
System.setProperty("ENV", "DEV");
Assumptions.assumeTrue("DEV".equals(System.getProperty("ENV")));
//剩余测试继续执行
}
@Test
void testOnProd()
{
System.setProperty("ENV", "PROD");
Assumptions.assumeTrue("DEV".equals(System.getProperty("ENV")), AppTest::message);
//剩余测试终止执行
}
private static String message () {
return "TEST Execution Failed :: ";
}
}
2. Assumptions.assumeFalse()
该 assumeFalse() 方法验证给定的假设为 false,如果假设为 false,则继续执行测试;否则,中止测试执行。
它与 assumeTrue() 的工作正好相反。

AI 工具导航
优网导航旗下AI工具导航,精选全球千款优质 AI 工具集
它有以下重载方法。
public static void assumeFalse(boolean assumption) throws TestAbortedException
public static void assumeFalse(boolean assumption, Supplier<String> messageSupplier) throws TestAbortedException
public static void assumeFalse(boolean assumption, String message) throws TestAbortedException
public static void assumeFalse(BooleanSupplier assumptionSupplier) throws TestAbortedException
public static void assumeFalse(BooleanSupplier assumptionSupplier, String message) throws TestAbortedException
public static void assumeFalse(BooleanSupplier assumptionSupplier, Supplier<String> messageSupplier) throws TestAbortedException
public class AppTest {
@Test
void testOnDev()
{
System.setProperty("ENV", "DEV");
Assumptions.assumeFalse("DEV".equals(System.getProperty("ENV")), AppTest::message);
//剩余测试终止执行
}
@Test
void testOnProd()
{
System.setProperty("ENV", "PROD");
Assumptions.assumeFalse("DEV".equals(System.getProperty("ENV")));
//剩余测试继续执行
}
private static String message () {
return "TEST Execution Failed :: ";
}
}
3. Assertions.assumingThat()
此方法执行提供的可执行文件,但仅在提供的假设有效时才执行。
与其他的假设方法不同,此方法不会中止测试。
- 如果假设无效,则此方法不会执行任何操作。
- 如果假设有效但可执行文件抛出异常,则将其视为常规测试失败。抛出的异常将按原样重新抛出,但作为未检查异常屏蔽。
它有以下重载方法。
public static void assumingThat(boolean assumption, Executable executable)
public static void assumingThat(BooleanSupplier assumptionSupplier, Executable executable)
@Test
void testInAllEnvironments() {
assumingThat("DEV".equals(System.getenv("ENV")),
() -> {
//仅在DEV服务器上执行这些断言
assertEquals(2, calculator.divide(4, 2));
});
//在所有环境执行这些断言
assertEquals(42, calculator.multiply(6, 7));
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...



