【发布时间】:2017-04-13 00:58:58
【问题描述】:
我正在尝试对一个类进行单元测试;为简洁起见,我们将其称为 Apple。它有一个带有 AppleManager bean 的 @Required 设置器。 AppleManager 本身有一个 @Required 设置器,而不是一个 AppleStorageClient bean。我正在模拟 AppleManager 并将其注入 Apple,但我还需要使用 real AppleManager 类来使用其 AppleStorageClient 对象中的方法检索数据。如何使用 Spring/Mockito 实现这一目标?
测试:
public class AppleTest {
@InjectMocks
private Apple apple;
@Mock
private AppleManager appleManager;
?????
private AppleManager realAppleManager;
//I tried = new AppleManager() here but the object is null...
//ostensibly because Spring doesn't know I want to use the bean
//also tried @Autowired to no avail
@Before
public void doBeforeStuff() {
MockitoAnnotations.initMocks(this);
}
...
}
来源:
public class Apple {
private AppleManager appleManager;
@Required
public void setAppleManager(AppleManager appleManager) {
this.appleManager = appleManager;
}
....
}
&
public class AppleManager {
private AppleStorageClient appleStorageClient;
@Required
public void setAppleStorageClient() {
this.appleStorageClient = appleStorageClient;
}
...
}
【问题讨论】:
标签: java spring unit-testing junit mockito