我正在使用Mockito @Mock和@InjectMocks批注将依赖项注入到使用Spring批注的私有字段中@Autowired:
@Mock
@InjectMocks
@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注释
@Spy
@RunWith(MockitoJUnitRunner.class) public class DemoTest { @Spy private SomeService service = new RealServiceImpl(); @InjectMocks private Demo demo; /* ... */ }
Mockito会将具有@Mock或@Spy批注的所有字段视为要注入到带有@InjectMocks批注的实例中的潜在候选对象。在上述情况下,'RealServiceImpl'实例将被注入到“演示”中
'RealServiceImpl'