我使用Mockito 1.9.5。同时尝试模拟位于我正在测试的服务中的方法。我知道您正在测试的模拟服务方法并不常见,但该方法只是从DB获取配置的复杂逻辑的一部分。
我想要实现的只是
when ( mockService.isFatureActive () ).thenReturn ( false );
@RunWith ( MockitoJUnitRunner.class )
public class MockSpyTestService {
@Spy
@InjectMocks
private MockSpyTestService mockService = new MockSpyTestService ();
@Before
public void init () {
mockService.setObjectFactory ( new ObjectFactory () );
}
@Test
public void verifyMockService () {
when ( mockService.isFatureActive() ).thenReturn ( false ); //real isFatureActive() called
verify ( mockService, times ( 1 ) ).isFatureActive();
}
}
根据文件应该工作得很好。 相反,我得到了实际方法的调用 - isFatureActive()