背景
在调用第三方RPC接口时,该接口未声明异常,但可能由于网络或者其他原因导致运行异常,故手工增加了try…catch…来进行异常处理。
故在使用PowerMock进行单元测试时,需要对这个未声明异常的方法进行Mock抛出异常。
开始代码如下:
1 | PowerMockito.when(rpcService.invoke(aaa)).thenThrow(new Exception()) |
结果运行的时候提示如下错误:
1 | Checked exception is invalid for this method! |
解决办法
该提示其实是告诉我们必须抛出一个特定的异常,而不能直接抛出Exception异常。
所以直接将抛出的异常改成RuntimeException即可。
1 | PowerMockito.when(rpcService.invoke(aaa)).thenThrow(new RuntimeException()) |