Tch*_*ypp 5 java junit spring mockito cglib
我尝试了mock-maker-inline
Mockito的“孵化”功能,以便能够模拟最终课程(此处描述和讨论的问题)。从那以后,其他测试失败:
org.mockito.exceptions.misusing.NotAMockException:
Argument passed to when() is not a mock!
Example of correct stubbing:
doThrow(new RuntimeException()).when(mock).someMethod();
Run Code Online (Sandbox Code Playgroud)
当我定义一个由间谍抛出的异常时。来自其中一项测试的相关代码:
在@Configuration 类中:
@Bean
public MessagePersister messagePersister() {
return Mockito.spy(new MessagePersister(...));
}
Run Code Online (Sandbox Code Playgroud)
注意:MessagePersister 由 CGLIB 代理。
在测试类中:
@Inject
private MessagePersister messagePersisterSpy;
@Test
public void exceptionInPersisterTest() {
doThrow(new SomeException("exceptionFromTest")).doCallRealMethod()
.when(messagePersisterSpy).persistMessages(any());
...
}
Run Code Online (Sandbox Code Playgroud)
例外是可以理解的。的类messagePersisterSpy
是MessagePersister$$EnhancerBySpringCGLIB$$6c49f1e2
,但是如果我删除该mock-maker-inline
功能,我的间谍就属于类MessagePersister$MockitoMock$515952708$$EnhancerBySpringCGLIB$$9523b504
并且测试是绿色的。
任何想法这种干扰来自哪里,我是否可以做些什么?
谢谢 !
归档时间: |
|
查看次数: |
910 次 |
最近记录: |