Mockito 是否支持使用 CDI 的 Instance<> 接口的 @Any @Inject?

Does Mockito support @Any @Inject with CDI's Instance<> interface?

我有一个 class 包含以下代码:

@Inject
@Any
private Instance<SomeInterface> SomeInterfaces;

这样我就可以遍历该接口的所有实现。 现在,我想对此进行测试,所以我声明了一些 @Mock 的这些接口,并希望将它们 @InjectMocks 到我的测试单元中。但那失败了。

是否可以很好地完成类似的事情,或者我是否必须为 Instance<SomeInterface>

创建一个 @Mock

Mockito 可以完成单元测试的全部工作。在这里你想测试你的代码如何与 CDI 上下文集成 => 你需要一个你使用的 CDI 上下文的实例。当然,您可以要求 Mockito 注入一些模拟,但这样您将测试 Mockito 内部注入系统而不是您的 CDI 上下文。 Mockito 警告您:

Mockito is not an dependency injection framework, don't expect this shorthand utility to inject a complex graph of objects be it mocks/spies or real objects.