Mockito:将真实对象注入私有@Autowired字段
我正在使用Mockito @Mock
和@InjectMocks
批注将依赖项注入到使用Spring批注的私有字段中@Autowired
:
@RunWith(MockitoJUnitRunner.class)public class DemoTest {
@Mock
private SomeService service;
@InjectMocks
private Demo demo;
/* ... */
}
和
public class Demo { @Autowired
private SomeService service;
/* ... */
}
现在,我还要将真实对象注入私有@Autowired
字段(不使用setter)。这是否可能,或者该机制是否仅限于注入Mocks?
回答:
使用@Spy
注释
@RunWith(MockitoJUnitRunner.class)public class DemoTest {
@Spy
private SomeService service = new RealServiceImpl();
@InjectMocks
private Demo demo;
/* ... */
}
Mockito会将具有@Mock
或@Spy
批注的所有字段视为要注入到带有@InjectMocks
批注的实例中的潜在候选对象。在上述情况下,'RealServiceImpl'
实例将被注入到“演示”中
以上是 Mockito:将真实对象注入私有@Autowired字段 的全部内容, 来源链接: utcz.com/qa/426220.html