Java doThrow()有效,但thunrow()无效';T
我试着模仿一个电话,我看到一件奇怪的事情发生了。我正在使用PowerMockito进行模拟Java doThrow()有效,但thunrow()无效';T,java,mockito,powermockito,Java,Mockito,Powermockito,我试着模仿一个电话,我看到一件奇怪的事情发生了。我正在使用PowerMockito进行模拟 1. when(store.read(Mockito.anyString())).thenThrow(IOException.class); 2. doThrow(IOException.class).when(store).read(Mockito.anyString()); 当我使用语句1模拟调用时,我得到以下错误: Runtime Exception (that's all, no stacktr
1. when(store.read(Mockito.anyString())).thenThrow(IOException.class);
2. doThrow(IOException.class).when(store).read(Mockito.anyString());
当我使用语句1模拟调用时,我得到以下错误:
Runtime Exception (that's all, no stacktrace)
当我使用语句2模拟调用时,它运行得非常好
我使用spring对store变量进行了如下模拟:
<bean id="store" class="org.mockito.Mockito" factory-method="mock" >
<constructor-arg value="org.company.state.work.s3.StateGraphStore" />
</bean>
我不确定这两种说法之间到底有什么区别,以及发生这种情况的原因是什么。dup中的答案解释了为什么在某些情况下,
doThrow
更安全。一般来说在1。您可以在存储
实例上直接调用读取
,并在2中调用。在Mockito创建的包装器/代理上调用read
。但是,如果不知道store
是什么,或者read
做什么,就不可能准确地说出您的示例中发生了什么。抱歉,由于我在没有完全阅读被复制的问题的情况下意外地将其作为一个被复制者关闭,因此重新打开了。我不相信这是一个确切的骗局。