【发布时间】:2014-01-30 00:01:39
【问题描述】:
我想测试的Java类(称为ServiceCaller)有这个:
@Autowired @Qualifier(value="serviceA")
SomeService serviceA;
@Autowired @Qualifier(value="serviceB")
SomeService serviceB;
(有一个 doWork() 方法将检查条件并调用 A 或 B)。
如何将每个服务的模拟注入到适当的变量中?
我的Junit 有这个:
@InjectMocks ServiceCaller classUnderTest = new ServiceCaller();
@Mock SomeService mockServiceA;
@Mock SomeService mockServiceB;
然而,当我运行测试以检查在正确条件下调用的服务 A/B 时,我得到空指针,因为尚未注入模拟。
显然是因为对同一接口 (SomeService) 的多个依赖项。有没有办法在声明模拟服务时指定限定符?还是我需要为依赖项设置设置器并设置老式方式?
【问题讨论】:
标签: java spring dependency-injection mocking mockito