模拟抛出一个受包保护的异常
Simulate throwing an exception that is package protected
问题:对于我的一个单元测试,我想结合 Mockito 模拟抛出异常 (io.netty.handler.timeout.TimeoutException
)。然而,Java 不允许这样做,因为异常是包保护的。
现在我有以下代码:
doAnswer(invocation -> {
throw new TimeoutException("test-description");
}).when(someObject).someMethod();
这段代码无法编译,但我想知道是否有任何替代方法可以模拟抛出此异常。
classio.netty.handler.timeout.TimeoutException
本身是public,但它的构造函数是package-private。您可以模拟异常:
doThrow(TimeoutException.class).when(someObject).someMethod();
或:
doThrow(mock(TimeoutException.class)).when(someObject).someMethod();
问题:对于我的一个单元测试,我想结合 Mockito 模拟抛出异常 (io.netty.handler.timeout.TimeoutException
)。然而,Java 不允许这样做,因为异常是包保护的。
现在我有以下代码:
doAnswer(invocation -> {
throw new TimeoutException("test-description");
}).when(someObject).someMethod();
这段代码无法编译,但我想知道是否有任何替代方法可以模拟抛出此异常。
classio.netty.handler.timeout.TimeoutException
本身是public,但它的构造函数是package-private。您可以模拟异常:
doThrow(TimeoutException.class).when(someObject).someMethod();
或:
doThrow(mock(TimeoutException.class)).when(someObject).someMethod();