gpt4 book ai didi

java - 是否可以通过使用 JUnit 来预期一个原因?

转载 作者:行者123 更新时间:2023-11-30 02:06:38 24 4
gpt4 key购买 nike

如果我预计由于某种原因会出现异常,我可以通过以下方式进行检查:

exception.expectCause(IsInstanceOf.instanceOf(MyExceptionB.class));

如何检查有原因的异常?IE。我有一个异常 MyExceptionA,其原因为 MyExceptionB,其原因为 MyExceptionC。如何检查是否引发了 MyExceptionC

最佳答案

您可以创建一个 hasCause 匹配器并将其与 ExpectedException 一起使用

import org.hamcrest.Matcher;
import org.hamcrest.Matchers;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

import static org.hamcrest.Matchers.*;
import static org.junit.rules.ExpectedException.none;

public class XTest {

@Rule
public final ExpectedException thrown = none();

@Test
public void any() {
thrown.expect(
hasCause(hasCause(instanceOf(RuntimeException.class))));
throw new RuntimeException(
new RuntimeException(
new RuntimeException("dummy message")
)
);
}

private Matcher hasCause(Matcher matcher) {
return Matchers.hasProperty("cause", matcher);
}
}

关于java - 是否可以通过使用 JUnit 来预期一个原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51138342/

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