我有一个 Spring 3.1/Java/Tomcat 应用程序。我有一个服务类如下:
public class SomeServiceImpl implements SomeService {
@Autowired
public AnotherService anotherService;
// other code...
这使用了另一个自动装配的服务类 AnotherService。这两个服务类都在 serviceContext.xml 文件中声明。
我正在编写 junit 来测试 SomeServiceImpl 并使用 autowired 来注入被测类 (SomeService) 以及被测类 (AnotherService) 所需的模拟 (EasyMock) 依赖项。AnotherService 的 easymock 依赖项在 testContext.xml 中定义,如下所示:
<bean id="mockAnotherService" class="org.easymock.EasyMock" factory-method="createMock" primary="true">
<constructor-arg value="com.xyz.AnotherService" />
</bean>
在我的测试类中,我配置为使用两个上下文文件。但是,我看到 ServiceImpl 已正确连接到实际实现(这是所需的),但不是另一个服务的模拟版本,而是创建版本 (AnotherServiceImpl) 正在连接。
如何获取我的依赖项的模拟版本?我不能在实际实现中使用@Resource 或@Qualifier,因为那样会破坏目的。我可以在我的测试课中使用这些。