日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mockito mock void方法_纯干货,浅谈Mockito在单元测试中的实际应用

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mockito mock void方法_纯干货,浅谈Mockito在单元测试中的实际应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文接上文"接口方沒寫代碼,對接方只能停工嗎?",在這里簡單介紹Mockito在單元測試中的實際應用。本文使用場景較單一,如有雷同,不甚榮幸,閑言少敘,開門見山。本文將使用mock技術模擬三種場景,1:模擬數據庫操作對象返回。2:模擬業務層操作。3:調用及實例分析。第一步:mock環境依賴,僅導入mockito最小依賴包。配置如下:<dependencies> <dependency> <groupId>org.mockitogroupId> <artifactId>mockito-allartifactId> <version>1.9.5version> dependency> <dependency> <artifactId>junitartifactId> <groupId>junitgroupId> <version>4.11version> dependency>dependencies>第二步,相應數據庫操作類和業務層邏輯代碼。StudentDao.javapackage com.yelang.mocktest.dao;import com.yelang.mocktest.entity.Student;/** * 模擬數據庫訪問層 * @author asus */public class StudentDao { /** * 根據id查詢學生信息 * @param pkId * @return * @throws Exception */ public Student findByID(Long pkId) throws Exception{ Student result = null; if(pkId == null) { return result; } result = new Student(pkId, "楊" + pkId, Short.valueOf("1"), "湖南省長沙市岳麓區", 18); return result; }}ClassInfoService.javapackage com.yelang.mocktest.service;import com.yelang.mocktest.dao.StudentDao;import com.yelang.mocktest.dao.TeacherDao;import com.yelang.mocktest.entity.Student;import com.yelang.mocktest.entity.Teacher;public?class?ClassInfoService?{??????private?StudentDao?studentDao; private TeacherDao teacherDao; public void queryInfo() throws Exception { Long tempPkId = 6L; Student student = studentDao.findByID(tempPkId); System.out.println(student.getName()); Teacher teacher = teacherDao.findById(tempPkId); System.out.println(teacher.getName()); }}第三步,數據庫訪問層以及業務邏輯層測試代碼@RunWith(MockitoJUnitRunner.class)public class StudentDaoTest { @Mock private StudentDao studentDao;//模擬對象,不會在jvm中創建真實對象 @Test public void test() throws Exception { Student student = new Student(1L, "張三", Short.valueOf("1"), "湖南省長沙市", 31); //模擬調用,返回對應值,不會發生實際調用 when(studentDao.findByID(1L)).thenReturn(student); //此時會按照模擬預期返回 Student result = studentDao.findByID(1L); assertEquals(result.getName(), "張三"); }}@RunWith(MockitoJUnitRunner.class)public class ClassInfoServiceTest { @Mock private StudentDao studentDao; @Mock private TeacherDao teacherDao; private ClassInfoService actualClassInfoService = new ClassInfoService(); /** * 真實對象中包含部分模擬調用,比如要測ClassInfoService.queryInfo(); * ClassInfoService不能為模擬對象,要實際調用邏輯,但是方法中的對象是模擬出來的, * 以下為模擬方法 * @throws Exception */ @Test public void test() throws Exception { //actualClassInfoService 是通過new 創建的,在jvm中實際存在 //1、通過actualClassInfoService暴露的setXXX 方法傳入模擬的對象 actualClassInfoService.setStudentDao(studentDao); actualClassInfoService.setTeacherDao(teacherDao); Student student = new Student(6L, "張三", Short.valueOf("1"), "湖南省長沙市", 31); //2、設置模擬對象的返回值(如果有),讓業務邏輯按預設的流程進行調用 when(studentDao.findByID(6L)).thenReturn(student); //3、同樣設置其它模擬的對象(如果不需要模擬對象,請傳入實際對象) Teacher teacher = new Teacher(6L, "楊1", 43, Short.valueOf("2")); when(teacherDao.findById(6L)).thenReturn(teacher); //4、使用實際對象調用業務邏輯,驗證真實邏輯 actualClassInfoService.queryInfo(); }}總結,在使用mockito的過程中一定要注意mock的使用場景。如果想測試真實業務邏輯,請不要使用@mock注解,推薦使用@autowired等spring注解,否則會發生不符合期望的結果。實際情況中,mock對象和真實對象存在取舍關系,比如在一段邏輯中,只需要模擬其中一個對象,其它引用的第三方對象均已注冊在springcontext中,因此按需使用mock技術,可以達到事半功倍的作用。mockito技術遠比上述介紹的復雜,也更專業,本文起拋磚引玉的作用,想更深入的掌握mock技術,可以移步mockito的官網(http://mockito.org)學習。更多單元測試技術以及mock方法,可以掃描公眾號交流。

總結

以上是生活随笔為你收集整理的mockito mock void方法_纯干货,浅谈Mockito在单元测试中的实际应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 8x8ⅹ国产精品一区二区二区 | 中文 日韩 欧美 | 99re6热在线精品视频播放 | 九九激情网 | 日本羞羞网站 | 人人综合网 | 免费99精品国产自在在线 | 国产丝袜精品视频 | 亚洲视频在线观看一区 | 国产操比视频 | 成av人在线 | h片在线免费观看 | 一级片免费播放 | 久久久久久久久久久久久久 | 天天操操操 | 女同亚洲精品一区二区三 | 性歌舞团一区二区三区视频 | 我们2018在线观看免费版高清 | 久久久久网 | 99视频99| 奇米狠狠 | 色偷偷网站 | 性感美女一区二区三区 | 全部免费毛片在线播放 | 极品少妇av| 亚洲久爱| av最新天| 亚洲欧美日韩另类 | 丁香婷婷综合网 | 精品综合久久久久 | 91欧美在线 | av免播放器在线观看 | 熟女毛毛多熟妇人妻aⅴ在线毛片 | 一区二区三区在线免费 | 亚洲精品123区 | 性色视频在线观看 | 91丝袜在线观看 | 操比网站| 严厉高冷老师动漫播放 | 国产首页 | 国产精品久久久久久久av福利 | 手机在线中文字幕 | 荔枝视频污 | 波多野结衣在线看 | 久久国产一区 | 校园春色综合网 | 免费高清欧美大片在线观看 | 内射后入在线观看一区 | www.香蕉.com | 麻豆视频在线观看免费 | 国产美女视频91 | 极品销魂美女一区二区三区 | 啪啪免费 | 日韩特级 | 欧美一区二区三区婷婷 | 蜜色av| 成人亚洲玉足脚交系列 | 波多野结衣影院 | 国精品一区二区 | 在线观看中文字幕 | 99riav1国产精品视频 | 干爹你真棒插曲mv在线观看 | 日韩视频一二三 | 中文字幕校园春色 | 久久麻豆视频 | 91麻豆国产在线 | 婷婷九月综合 | 国产影视av| 成人免费激情视频 | 不卡一区二区在线观看 | 国产欧美精品在线 | 国产欧美日韩免费 | 91狠狠操| 色综合天天综合 | 中文字幕欧美人妻精品 | 自拍偷自拍亚洲精品播放 | 欧美视频一二三区 | 天天操夜操 | 无码人妻精品一区二区蜜桃色欲 | 老司机在线观看视频 | 男女做受视频 | 91大片在线观看 | 欧美色综合天天久久综合精品 | 欧美精品18videosex性欧美 | 午夜电影一区 | 性色浪潮| 麻豆一区产品精品蜜桃的特点 | 中文av一区二区三区 | 国产精品videossex国产高清 | 天天干天天爱天天射 | 激情都市一区二区 | 2018av在线| 欧美三区在线观看 | 自拍偷拍导航 | 九热在线视频 | 最近中文字幕在线中文高清版 | 未满十八岁禁止进入 | 麻豆影视在线免费观看 | 免费的av网站|