
文章插图
【Mockito 一个优秀的 Mock 测试框架】
可以看到当我们调用 get(0) 和 get(1) 的时候控制台成功地抛出了异常 。这种方式通常被称为Stubbing,除了使用 when...thenReturn 方式之外,还有一种形式可以表达,代码如下:
@Testpublic void testDoReturn() throws Exception {Iterator mockedList = mock(Iterator.class);doReturn("hello").when(mockedList).next();Object next = mockedList.next();System.out.println(next);doReturn("world").when(mockedList).next();Object next2 = mockedList.next();System.out.println(next2);//上面的过程也可以写成如下方式doReturn("test1", "test2").when(mockedList).next();Object next3 = mockedList.next();System.out.println(next3);Object next4 = mockedList.next();System.out.println(next4);}运行结果如下所示,也可以用 doThrow() 方法进行抛异常:
文章插图
测试用例 3日常开发中我们通过要保证方法的时效性,或者说我们要保证我们某个方法必须在多长时间内执行完成,这个时候我们也可以通过 mock 的方式来验证我们的方法是否满足要求 。代码如下:
@Testpublic void testTimeout() throws Exception {HttpService mock = mock(HttpService.class);String url = "http://www.xxx.com";mock.getRequest(url);verify(mock, timeout(100)).getRequest(url);//timeout时间后,用自定义的检验模式验证getRequest()VerificationMode customVer = new VerificationMode() {@Overridepublic void verify(VerificationData data) {}@Overridepublic VerificationMode description(String s) {return null;}};verify(mock, new Timeout(100, customVer)).getRequest(url);}Mockito 还有很多 API 可以使用,更多的使用方式,大家可以参考下面这个网站 。https://www.tutorialspoint.com/mockito/mockito_timeouts.htm,有更详细的介绍 。
文章插图
推荐阅读
- 秘制蛋黄饼的做法
- 猕猴桃不能与什么同吃呢?
- 推荐一个生产环境问题排查利器
- 10大优秀Python开发工具
- 张飞是一个怎样的人物,评价张飞是什么样的人
- 中国第一个大一统王朝是哪个朝代,历代统一中国的有几个朝代
- 秦始皇不是第一个皇帝,为什么秦始皇是中国第一皇帝
- 程序员的核心竞争力
- 文鸳厉害嘛,文鸳和文鸯是一个人吗?
- 贾岛是一个什么样的人,贾岛的生平
