我想断言在运行某些代码时会抛出某个异常(SSLHandshakeException)。
assertThatThrownBy(() -> {
// some code
}).isInstanceOf(SSLHandshakeException.class);
但是,这失败了,因为失败跟踪显示:
java.lang.AssertionError:
Expecting:
<javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure>
to be an instance of:
<javax.net.ssl.SSLHandshakeException>
but was:
<"javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
检查ProcessingException是否可以,但是太笼统了。我需要确保由于SSL握手而导致代码段失败。
如何以应考虑“第二”例外的方式对其进行更改?
答案 0 :(得分:1)
getCause()
应该有助于访问内部异常。
assertThatThrownBy(() -> {
// some code
}).getCause().isInstanceOf(SSLHandshakeException.class);
答案 1 :(得分:1)
您可以简单地使用hasCauseInstanceOf。