2 回答
TA贡献1946条经验 获得超3个赞
根据我发现的这个问题,一种可能的解决方法是使用
因此,代替 spy(proxy) 使用 mock(TestSubject.class, delegatesTo(springProxy))。
在你的情况下(未经我测试),那可能是
return Mockito.mock(VirtualControllerService.class, AdditionalAnswers.delegatesTo(virtualControllerService));
AdditionalAnswers.delegateTo
有关详细信息,请参阅。请注意,您无法在您的间谍实例中对内部方法调用进行存根或验证(只会跟踪对模拟对象的方法调用)。用例:
对于使用通常的间谍 API 难以模拟或监视的对象的间谍或部分模拟很有用。可能的用例:已经自定义代理对象
TA贡献1877条经验 获得超1个赞
您可以在测试类中使用 @Mock 注释CreateIfcClusterTaskTest来模拟服务实例,而不是在您的配置中创建服务类的 bean。
它看起来像这样:
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = { CreateIfcClusterTaskTest.Config.class })
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
public class CreateIfcClusterTaskTest {
@Mock
VirtualControllerService virtualControllerService;
}
而且您必须使用 Mockito 的注释初始化对象,如下所示:
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
希望有所帮助。
添加回答
举报