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

回到顶部