gpt4 book ai didi

java - ExpectedException.expectMessage((String) null) 不工作

转载 作者:行者123 更新时间:2023-11-30 08:05:08 26 4
gpt4 key购买 nike

我正在编写 JUnit4 单元测试并且有一个条件,我需要断言异常被抛出并带有 null 消息。

@Rule
public final ExpectedException exception = ExpectedException.none();

@Test
public final void testNullException() throws Exception {
exception.expect(Exception.class);
exception.expectMessage((String) null);
mPackage.getInfo(null);
}

mPackage.getInfo(null) 正确地抛出一个带有 null 消息的异常,但是 JUnit 测试失败并显示消息:

java.lang.AssertionError: 
Expected: (an instance of java.lang.Exception and exception with message a string containing null)
but: exception with message a string containing null message was null

无论如何,是否有以JUnit4 方式 测试带有null 消息的异常。 (我知道我可以捕获异常并自己检查条件)。

最佳答案

使用 org.hamcrest.Matcherorg.hamcrest.core.IsNull 对我有用。

语法是,

@Rule
public final ExpectedException exception = ExpectedException.none();

@Test
public final void testNullException() throws Exception {
exception.expect(Exception.class);
Matcher<String> nullMatcher = new IsNull<>();
exception.expectMessage(nullMatcher);
mPackage.getInfo(null);
}

关于java - ExpectedException.expectMessage((String) null) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35199026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com