Mockito异常测试实例
编程技术  /  houtizong 发布于 3年前   67
Mockito异常测试实例:
package com.bijian.study;import static org.mockito.Mockito.mock;import static org.mockito.Mockito.when;import org.junit.Assert;import org.junit.Test;import org.mockito.Mockito;public class MockitoDemo { @Test public void mockitoTest() throws Exception { Service service = new Service(); Dao dao = mock(Dao.class);// 相当于 new一个dao的模拟类 service.setDao(dao); when(dao.update("1", "2")).thenReturn(2); Assert.assertEquals(2, service.update("1", "2")); // 方法的参数可以匹配任意值,Mockito.anyXXX() 和任意类 Mockito.any(clazz) when(dao.update(Mockito.anyString(), Mockito.any(String.class))).thenReturn(3); // 不能将确定值和模糊值混搭,这样会报错 // when(dao.update("3", Mockito.any(String.class))).thenReturn(3); Assert.assertEquals(3, service.update("3", "4")); // 下面模拟抛异常 when(dao.update("3", "4")).thenThrow(new RuntimeException()); Assert.assertEquals(-1, service.update("3", "4")); // void方法抛异常 Mockito.doThrow(new RuntimeException("测试")).when(dao).voidTest(); try { service.voidTest(); } catch (Exception e) { Assert.assertEquals("测试", e.getMessage()); } // 不能模拟抛Exception类 //when(dao.update("3", "4")).thenThrow(new Exception()); // 同一方法不能多次模拟抛异常 //when(dao.update("3", "4")).thenThrow(new NullPointerException()); //Assert.assertEquals(-1, service.update("3", "4")); }}class Service { private Dao dao; public void setDao(Dao dao) { this.dao = dao; } public void voidTest() { dao.voidTest(); } public int update(String a, String b) { int i = 0; try { i = dao.update(a, b); } catch (Exception e) { i = -1; } return i; }}class Dao { public void voidTest() { } public int update(String a, String b) { return 1; }}
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接