相关疑难解决方法(0)

如何注入相同接口的多个模拟

ServiceCaller我想测试的Java类(调用)有这个:

@Autowired @Qualifier(value="serviceA")
SomeService serviceA;

@Autowired @Qualifier(value="serviceB")
SomeService serviceB;
Run Code Online (Sandbox Code Playgroud)

(有一种doWork()方法可以检查条件并调用A或B).

如何将每个服务的模拟注入适当的变量?

我的Junit有这个:

@InjectMocks ServiceCaller classUnderTest = new ServiceCaller();

@Mock SomeService mockServiceA;
@Mock SomeService mockServiceB;
Run Code Online (Sandbox Code Playgroud)

然而,当我运行我的测试以检查在正确条件下调用的服务A/B时,我得到空指针,因为没有注入模拟.

显然它是因为对同一个接口的多重依赖(SomeService).有没有办法在声明模拟服务时指定限定符?或者我是否需要为依赖项设置setter并设置旧的方式?

java spring dependency-injection mocking mockito

19
推荐指数
3
解决办法
2万
查看次数

标签 统计

dependency-injection ×1

java ×1

mocking ×1

mockito ×1

spring ×1