JUnit 5 Assumptions详解

后端 潘老师 7个月前 (10-24) 132 ℃ (0) 扫码查看

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.panziye.com/back/10301.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】