栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

只需将您的模拟命名为serviceA和serviceB。从Mockito
文档中:

属性设定器注入;模拟将首先按类型解析,然后,如果存在多个相同类型的属性,则按属性名称和模拟名称的匹配进行解析。

在您的示例中:

@InjectMocks ServiceCaller classUnderTest;@Mock SomeService serviceA;@Mock SomeService serviceB;

请注意,使用@InjectMocks时不必手动创建类实例。

不过,我个人更喜欢使用构造函数注入依赖项。它使得在测试中注入模拟更加容易(只需使用模拟调用构造函数-
无需反射工具即可

@InjectMocks
((这很有用,但隐藏了某些方面))。除了使用TDD之外,还清晰可见测试类需要哪些依赖关系,IDE也可以生成构造函数存根。

Spring framework完全支持构造函数注入:

@Beanpublic class ServiceCaller {    private final SomeService serviceA;    private final SomeService serviceB;    @Autowired    public ServiceCaller(@Qualifier("serviceA") SomeService serviceA,   @Qualifier("serviceB") SomeService serviceB) { ... }    ...}

可以使用以下代码测试此代码:

@Mock SomeService serviceA;@Mock SomeService serviceB;//in a setup or test methodServiceCaller classUnderTest = new ServiceCaller(serviceA, serviceB);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454387.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号