行业资讯 2025年08月6日
0 收藏 0 点赞 468 浏览 2872 个字
摘要 :

文章目录 1.Assumptions.assumeTrue() 2. Assumptions.assumeFalse() 3. Assertions.assumingThat() JUnit 5 的Assumptions类提供了一些静态方法,以支持基于假设的条……




  • 1.Assumptions.assumeTrue()
  • 2. Assumptions.assumeFalse()
  • 3. Assertions.assumingThat()

JUnit 5 的Assumptions类提供了一些静态方法,以支持基于假设的条件测试执行。如果假设失败,则会导致测试被中止。

假设通常用于继续执行给定的测试方法没有意义的情况。在测试报告中,这些测试将被标记为已通过。

JUnit Jupiter Assumptions 类有以下方法:

  • 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() 的工作正好相反。

它有以下重载方法。

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));
    }

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9518.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号