不知道您的问题可能是什么,但是在这一点上,我不妨发布一个可行的示例。
如前所述,您需要正确指定每个参数的类型,以便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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)