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

如何使用AssertJ验证静态方法引发异常?

彭衡
2023-03-14

当我尝试测试此方法时

    static void validatePostcode(final String postcode, final String addressLine)
    {
        if(! hasValidPostcode(postcode, addressLine)) {
            throw new InvalidFieldException("Postcode is null or empty ");
        }
    }

使用以下测试

    @Test
    public void testThrowsAnException()
    {
        assertThatThrownBy(validatePostcode("", "")).isInstanceOf(InvalidFieldException.class);
    }

 
AssertThatExceptionOfType也是如此。

是否可以使用AssertJ测试静态方法实际上抛出未检查的异常?我应该在考试中改变什么?

共有1个答案

卓新知
2023-03-14

编译错误所示,该方法需要一个抛出调用。

@Test
public void testThrowsAnException()
{
    assertThatThrownBy(() -> validatePostcode("", "")).isInstanceOf(InvalidFieldException.class);
}
 类似资料:
  • 我正在Junit上工作 这就是我所做的。我已发出请求,并且我的请求已成功调用我的控制器。当我尝试使用要测试是否调用了静态方法,我得到一个错误,如下所示。 我得到的错误是: 我的问题是: > 我可以使用在我的方法。如果"是"如何? 我还想在上使用验证。我该怎么做呢? 任何帮助都是值得赞赏的。

  • 问题内容: 我正在使用以下内容。 这是我的utils课 这是被测课程的要点: 这是测试: 以上测试失败。给出的验证模式为空,但根据代码,如果订购成功,则必须发送电子邮件。 问题答案: 如果您要嘲笑行为(类似),则实际上无需调用。也就是说,这是我重写测试方法的动力: 我分为四个部分,以更好地突出显示正在发生的事情: 1.变量 我选择在此处声明任何实例变量/方法参数/模拟协作者。如果它在多个测试中使用

  • 问题内容: 在我的使用Mockito的单元测试中,我想验证未抛出该异常。 我的测试设置了,设置了对象和属性,以便该方法将抛出。 我 确认 从未调用过Calling.method()。 我想要测试失败,因为它抛出,然后我想编写一些代码来解决此问题。 我注意到的是,测试始终会通过,因为永远不会抛出异常。 问题答案: tl; dr JDK8之后:使用 AssertJ 或自定义lambda来声明 异常 行

  • 问题内容: 我正在为类似于以下示例的方法编写JUnit测试用例: 我在测试类中编写了以下测试用例: 现在,我想验证是否调用了Sample Sample类的static methodC()。如何使用PowerMockito 1.6实现?我已经尝试了很多东西,但是似乎对我来说没有用。任何帮助表示赞赏。 问题答案: 就我个人而言,我不得不说PowerMock等是您的代码不错的情况下不应该解决的问题的解决

  • 我想知道是否有一种方法来验证和调用一个模拟,该模拟是为一个私有静态方法创建的,该私有静态方法是从一个被测试的公共静态方法调用的。 下面是我正在测试的公共静态方法 我已经使用powermokito对私有静态方法进行了如下嘲弄:

  • 问题内容: 我正在尝试使用Powermock和Mockito模拟无效的静态方法来引发异常,如下所示。但是我遇到了一个问题。除非我使用相同的参数对Adder.add()进行两次调用,否则不会抛出模拟对象。 顺便说一句,我已经添加并在单元测试类。 提前致谢。:) 答案如下。 在这里http://code.google.com/p/powermock/issues/detail?id=278进行咨询之后