amo*_*fis 1 unit-testing mocking mockito spock
在 Mockito 中,有一个很好的方法可以通过与模拟的交互来获得编程答案。例如,我们可以对模拟进行编程以返回传递给其方法调用的参数:
when(mockDao.persist(any(Entity.class)).thenAnswer(new Answer<Entity>() {
public Entity answer(InvocationOnMock invocationOnMock) throws Throwable {
Entity entity = (Entity) invocationOnMock.getArguments()[0];
return entity;
}
});
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Spock 中做同样的事情?
mockDao.persist(_) >> { it[0] }
Run Code Online (Sandbox Code Playgroud)
或者,通过解构:
mockDao.persist(_) >> { Entity entity -> entity }
Run Code Online (Sandbox Code Playgroud)