进行测试时,无法注入其中一个注入的bean的属性(使用 @Spy )。我正在使用 Mockito 进行测试。
我在测试中尝试在此Bean中使用@Mock, @Spy, @SpyBean and @InjectMocks
,但无法注入它。
@RunWith(MockitoJUnitRunner.class)
public class MyTest{
@InjectMocks private MyService = new myService();
@Spy private MyFirtsDepen firstDepen;
@Autowired @Spy private ChildDepen childDepen;
... More mocks and tests
}
@Service
public class MyService {
@Autowired private MyFirstDepen firstDepen;
....
}
@Mapper
public class MyFirstDepen {
@Autowired private ChildDepen childDepen;
....
}
@Component
public class ChildDepen {
...
}
当我的测试中使用firstDepen时效果很好,但是当firstDepen使用childDepend时,始终获得Nullpointer。如何在测试中注入此属性?
答案 0 :(得分:1)
由于您的MyFirtsDepen
是模拟游戏,因此无法向其中注入任何内容。配置模拟以返回另一个模拟。
when(firstDepen.getChildDepen()).doReturn(childDepen);