当前位置: 首页 > 知识库问答 >
问题:

JUnit5 assertAll私有方法断言被忽略

慕晨
2023-03-14

使用JUnit5 assertAll,我调用一个方法来执行断言,但注意到当断言失败时,测试实际上通过了。调用下面这样的方法似乎被忽略了。

assertAll(
    () -> jsonAssertions(actual, expectedUrl)
);

private Executable[] jsonAssertions(String actual, String expectedUrl) {
    return new Executable[] {
        () -> ProductAssert.assertThat(actual).urlEquals(expectedUrl)
    };
}

不过这很管用

assertAll(
    () -> ProductAssert.assertThat(actual).urlEquals(expectedUrl)
);

共有1个答案

栾耀
2023-03-14

JUnit5assertall接受可执行实例的列表。

现在这样做,实际上并没有将Executable列表传递给Assertall。不是将匿名方法传递给assertall,而是直接传递JSONAssertions的结果:

@Test
private void test() {
    assertAll(jsonAssertions(actual, expected));
}

private Executable[] jsonAssertions(String actual, String expected) {
    return new Executable[] {
        () -> assertThat(actual).isNotNull(),
        () -> assertThat(expected).isNotNull(),
        () -> assertThat(actual).isEqualTo(expected)
    };
}
 类似资料:
  • 问题内容: 要使用公共方法创建JavaScript类,我需要执行以下操作: 这样,我班的用户可以: 如何创建一个私有方法,该私有方法可以由和方法调用,但不能由该类的用户外部调用? 换句话说,我希望我的方法实现能够做到: 但这不起作用: 如何将其定义为私有方法,使两者都适用? 我已经读过Doug Crockford的文章 几次,但似乎公共方法不能调用“私有”方法,而外部可以调用“特权”方法。 问题答

  • 我试图模拟一个私有方法(executeGetRequest),在我声明要为私有方法返回的模拟的那一行中,私有方法实际上是用null参数执行的,因此抛出了一个NullPointerException。 VlcPlayerMinimal。爪哇: VlcPlayerMinimalTest。爪哇: 堆栈跟踪: 它似乎PowerMockito实际上是调用的方法,我试图在行PowerMockito.do返回(

  • 主要内容:1 概述,2. JUnit 4断言与示例,3 结论1 概述 在本文中,我们将学习JUnit 4中所有可用的Assert语句 。 这些断言可用于所有 基本类型,对象和数组(基本或对象)。 断言中的参数order是期望值,后跟实际值;可选地,第一个参数可以是代表已评估条件的消息输出的String消息。 2. JUnit 4断言与示例 方法 描述 void assertArrayEquals([String message], expectedArra

  • 我这样做是为了得到想要的结果

  • 以下是日志供参考: IllegalStateException:无法转换名为com.xyz.TestLoad的类。原因:java.io.ioException:无效常量类型:在org.powermock.core.classloader.mockClassLoader.loadModifiedClass(MockClassLoader.java:180)在org.powermock.core.cl

  • 我试图模仿一个私有方法,如下所示。但是,在第4行,JUnit正在调用相关的validateLanguage方法,并且由于私有方法validateLanguage在调用其他方法时引发了异常,因此没有返回模拟值。我的理解是,使用PowerMock的JUnit应该跳过validateLanguage实际实现的调用。有人能澄清一下吗?