用Mockito模拟重载的方法

用Mockito模拟重载的方法,第1张

用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



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5441685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存