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

用Mockito模拟重载的方法

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

用Mockito模拟重载的方法

不知道您的问题可能是什么,但是在这一点上,我不妨发布一个可行的示例。

如前所述,您需要正确指定每个参数的类型,以便Mockito可以找到匹配的方法签名。

有关处理较早的嘲笑版本使用的varargs的语法,请检查

thisanswer

import static org.mockito.ArgumentMatchers.any;...@RunWith(MockitoJUnitRunner.class)public class MockitoTest {    @Test    public void test() throws Exception {        RestTemplate api = Mockito.mock(RestTemplate.class);        Object obj1 = new Object();        Object obj2 = new Object();        Object obj3 = new Object();        Mockito.when(api.getForObject(any(String.class),any(Class.class), ArgumentMatchers.<Object>any())).thenReturn(obj1);        Mockito.when(api.getForObject(any(String.class),any(Class.class), any(Map.class))).thenReturn(obj2);        Mockito.when(api.getForObject(any(URI.class),any(Class.class))).thenReturn(obj3);        Assert.assertEquals(obj1, api.getForObject("", String.class));        Assert.assertEquals(obj1, api.getForObject("", String.class, obj1));        Assert.assertEquals(obj1, api.getForObject("", String.class, obj1, obj2));        Assert.assertEquals(obj1, api.getForObject("", String.class, obj1, obj2, obj3));        Assert.assertEquals(obj1, api.getForObject("", String.class, new Object[] {obj1,obj2,obj3}));        Assert.assertEquals(obj2, api.getForObject("", String.class, new HashMap()));        Assert.assertEquals(obj3, api.getForObject(new URI(""), String.class));    }}

为了您的用例只需更换

thenReturn
thenThrow



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

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

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