当我进行测试时,我无法注入其中一个注入的豆子的属性(带有@Spy(。我正在使用Mockito进行测试。
我尝试在测试中在这个豆子中使用@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。如何在测试中注入此属性?
由于您的MyFirtsDepen
是模拟的,因此无法向其注入任何内容。配置模拟以返回另一个模拟。
when(firstDepen.getChildDepen()).doReturn(childDepen);