如何在间谍对象中注入模拟对象?

时间:2016-07-11 16:01:51

标签: unit-testing mockito

我必须在spring应用程序中测试一个rest api,它依赖于服务类,并且它还依赖于dao类。我已经使用@InjectMocks创建了控制器实例,使用@Spy创建了服务,使用@Mock创建了dao。在我目前的场景中,我测试的api在spy中调用一个方法,而被调用的方法在mock中调用一个方法。如果我不使用间谍,那么测试不能正常工作,如果使用,那么dao的实例不会注入服务中。在这种情况下,我需要做什么才能将dao的模拟对象注入间谍对象?

1 个答案:

答案 0 :(得分:1)

您可以在服务类中同时使用@Spy@InjectMocks,但它可能无法正常工作。 我认为最好的做法是分开你的考试。您可以为rest api编写一个测试,并从服务创建模拟,然后进行第二次服务测试。