精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

單元測試效率優(yōu)化:為什么要對程序進(jìn)行測試?測試有什么好處?

開發(fā) 測試
談到測試,我們?yōu)槭裁匆獙Τ绦蜻M(jìn)行測試呢?測試會為程序帶來什么好處呢?

?單元測試(Unit Testing)又稱為模塊測試, 是針對程序模塊(軟件設(shè)計的最小單位)來進(jìn)行正確性檢驗的測試工作。 程序單元是應(yīng)用的最小可測試部件。簡單來說,就是測試數(shù)據(jù)的穩(wěn)定性是否達(dá)到程序的預(yù)期。談到測試,我們?yōu)槭裁匆獙Τ绦蜻M(jìn)行測試呢?測試會為程序帶來什么好處呢?

單元測試的重要性

我們?nèi)粘i_發(fā)時可能在不經(jīng)意間寫錯,如果等到最后階段去檢驗項目成果時,發(fā)現(xiàn)有錯誤,這時候我們很難找到Bug的源頭在哪里。我們都知道,有可能一處出錯會導(dǎo)致步步錯的情況。

測試就在我們的上述說法中,顯得尤為重要,當(dāng)我們做完項目的一個小模塊,先去測試一下這個小模塊是否正確或達(dá)到預(yù)期,如果錯誤或者沒有達(dá)到預(yù)期就需要反復(fù)修改,直到正確或達(dá)到預(yù)期,也就是使用了單元測試。

單元測試的編碼規(guī)范一般涉及到以下內(nèi)容:

  • 類名: 定義測試類,類名是由被測試類名Test構(gòu)成。例如:CalculatorTest;
  • 包名:定義的測試類需要放在xxx.xxx.xxx.test包中。例如:package com.autodrive.test;
  • 方法名: 測試方法的方法名有兩種定義方式test測試方法和測試方法。例如:testCheck和check;
  • 返回值: 因為我們的方法只是在類中測試,可以獨(dú)立運(yùn)行,所以不需要處理任何返回值,所以這里使用void。例如:public void check();
  • 參數(shù)列表: 因為我們的方法是用來測試的,至于參數(shù)列表的傳入是沒有必要的。我們在測試的時候自行傳入需要的參數(shù)測試即可。所以在此參數(shù)列表為空。例如:例如:public void check();
  • @Test注解: 測試是需要運(yùn)行來完成的。如果我們只有一個main方法,顯然在結(jié)構(gòu)上還是需要我們?nèi)プ⑨尩魷y試過的。解決此問題這里我們需要在測試方法上方加@Test注解來完成測試,只要是加該注解的方法,可以單獨(dú)運(yùn)行此方法來完成測試。
  • IDEA快捷導(dǎo)入Junit4、5: 使用IDEA的小伙伴,你們的福音來了。我們可以先創(chuàng)建測試類和方法,然后在測試方法上方加入@Test注解,此時IDEA顯示的@Test注解是飄紅的,這時候我們使用Alt + Enter組合鍵來打開導(dǎo)入Junit單元測試列表,然后再選擇Junit4或者Junit5確定。

在SpringBoot往往存在單元測試用到如下的注解與寫法:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
@Transactional
@Rollback(true) // 事務(wù)自動回滾,默認(rèn)是true。可以不寫
public class NoticeServiceTest {
@Autowired
private NoticeService noticeService;
@Test
public void sayHello() {
helloService.sayHello("zhangsan");
}
}

在上面這個例子中,@SpringBootTest啟動了SpringBoot環(huán)境,掃描應(yīng)用程序的spring配置,并構(gòu)建完整的Spring Context,其classes = Application.class啟動了整個項目。通過@SpringBootTest我們可以指定啟動類,或者給@SpringBootTest的參數(shù)webEnvironment賦值為SpringBootTest.WebEnvironment.RANDOM_PORT,這樣就會啟動web容器,并監(jiān)聽一個隨機(jī)的端口,同時,為我們自動裝配一個TestRestTemplate類型的bean來輔助我們發(fā)送測試請求。

@Transactional表明調(diào)用數(shù)據(jù)庫并作事務(wù)處理;@RunWith(SpringRunner.class)聲明在Spring的環(huán)境中進(jìn)行單元測試,這樣Spring的相關(guān)注解就會被識別并起效,而@Autowired啟動了Spring。

當(dāng)項目使用了@Component注解,在SpringBoot項目啟動的時候就會跟著實例化/啟動,這個@Component注解的類里有多線程方法,隨著啟動類中定義的ApplicationStartup類啟動了,那么在你執(zhí)行單元測試的時候,由于多線程任務(wù)的影響,就可能對你的數(shù)據(jù)庫造成了數(shù)據(jù)修改,即使你使用了事務(wù)回滾注解。

優(yōu)化

高效的單元測試應(yīng)該脫離數(shù)據(jù)庫,以滿足快速啟動完成測試、支持服務(wù)間調(diào)用的需求。可以通過如下幾點(diǎn)來對上述例子進(jìn)行優(yōu)化:

(1) 啟動Spring會讓run->Junit Test的時候程序變慢,這是每次運(yùn)行單元測試都很慢的原因之一。然后單元測試是只針對某一個類的方法來測,啟動Spring很多時候是多余的,所以我們只需要對應(yīng)的實體類實例就夠了。在需要注入bean的時候,我們直接new。


private NoticeService noticeService = new NoticeService();

(2) @SpringBootTest是在SpringBoot項目上使用的,它在@SpringBootContextLoader的基礎(chǔ)上,配置文件屬性的讀取,會讀取、解析一些項目配置文件,還會連接數(shù)據(jù)庫,然后如果啟動類又帶有別的啟動類、@Component、多線程等,而單元測試很多時候可以避免啟動SpringBoot,減少啟動所耗費(fèi)的大量時間,即不使用@SpringBootTest注解。

(3) 應(yīng)當(dāng)使用斷言來判斷單元測試結(jié)果是否符合預(yù)期。

(4) @RunWith 在JUnit中有很多個Runner,他們負(fù)責(zé)調(diào)用具體測試代碼,每一個Runner都有各自的特殊功能,你要根據(jù)需要選擇不同的Runner來運(yùn)行你的測試代碼,且一般都是使用SpringRunner.class。如果我們只是簡單的做普通Java測試,不涉及Spring Web項目,可以省略@RunWith注解,這樣系統(tǒng)會自動使用默認(rèn)Runner來運(yùn)行你的代碼。

(5) 單元測試可以通過Mock數(shù)據(jù)的方式避開對數(shù)據(jù)庫的調(diào)用,減少很多數(shù)據(jù)庫連接的時間。Mock是模擬一切操作數(shù)據(jù)庫的步驟,不執(zhí)行任何SQL,我們直接模擬這句操作數(shù)據(jù)庫的代碼執(zhí)行會是成功的,而且可以模擬任何返回值,主要有兩個注解。只要是本地的,自己寫的bean,都可以使用@MockBean,它會把所有操作數(shù)據(jù)庫的方法模擬。如果是沒有返回值的方法,我們就可以不管。如果是有返回值的方法,我們可以給它返回各自我們需要模擬的值。如果是我們本地,調(diào)用別的公司,別的地方給我們寫好的接口,不是操作我們自己的數(shù)據(jù)庫,是我們寫好入?yún)ⅲ瑒e人給我們返回值,我們就用@SpyBean。

Mock所需依賴如下:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

通過以上優(yōu)化,可以大大縮短我們單測的時間,提高我們開發(fā)效率。?

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2022-02-21 07:54:28

單元測試編程開發(fā)

2024-04-02 09:17:10

單元測試集成測試

2017-01-16 12:12:29

單元測試JUnit

2017-01-14 23:26:17

單元測試JUnit測試

2017-01-14 23:42:49

單元測試框架軟件測試

2017-03-23 16:02:10

Mock技術(shù)單元測試

2013-06-04 09:49:04

Spring單元測試軟件測試

2009-08-19 09:00:48

單元測試框架自動化測試

2020-08-18 08:10:02

單元測試Java

2021-08-04 10:51:04

數(shù)據(jù)庫單元測試SQL

2021-03-28 23:03:50

Python程序員編碼

2011-05-16 16:52:09

單元測試徹底測試

2009-06-02 16:05:04

Struts驅(qū)動開發(fā)

2014-04-24 13:43:37

CC++單元測試框架

2023-07-07 08:38:49

單元測試軟件開發(fā)

2021-03-24 09:30:02

Jupyter not單元測試代碼

2012-11-01 11:32:23

IBMdw

2012-11-01 11:37:05

JavaScript單元測試測試工具

2023-08-02 13:59:00

GoogleTestCTest單元測試

2021-05-05 11:38:40

TestNGPowerMock單元測試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

岛国毛片在线观看| 精品无码国模私拍视频| 国产永久免费视频| 欧美激情第二页| 亚洲精品91美女久久久久久久| 97中文字幕在线| 日本韩国精品一区二区| 可以看av的网站久久看| 久久天天躁狠狠躁夜夜躁2014| 精品国产第一区二区三区观看体验| 久久精品99无色码中文字幕| 99热这里只有精品2| 白白色在线观看| 国产亚洲一区字幕| 欧美人xxxx| 日韩女优制服丝袜电影| 日韩人妻无码精品久久久不卡| 每日更新av在线播放| 国内精品国产三级国产a久久| 欧美男插女视频| 性猛交ⅹxxx富婆video| 亚洲精品影片| 欧美日韩免费视频| 欧美aⅴ在线观看| 日韩123区| 国产精品福利一区二区三区| 国产伦精品一区二区三区四区视频| 亚洲av综合一区| 野花国产精品入口| 欧美成人精品影院| 长河落日免费高清观看| 夜夜春成人影院| 日韩欧美高清在线| 亚洲图色中文字幕| 精品国模一区二区三区| 午夜久久久久久久久久一区二区| 亚洲人成77777| 欧美一区二区少妇| av一本久道久久综合久久鬼色| 91精品国产自产在线老师啪| 精品久久久久久久久久久久久久久久| 亚洲成人原创| 久久99久久久久久久噜噜| 精品视频第一页| 国内黄色精品| 亚洲欧洲日产国产网站| 99re这里只有| 国产成人夜色高潮福利影视| 欧美一级淫片007| 91在线第一页| 国产精品高清一区二区| 欧美日韩免费视频| 在线黄色免费看| 久久69成人| 欧美日韩国产小视频在线观看| 激情五月亚洲色图| 婷婷综合六月| 欧美午夜片在线观看| 欧美丰满熟妇xxxxx| 性欧美gay| 在线一区二区三区四区| 免费在线观看的毛片| 美女福利一区二区| 欧美三级日韩三级| 国产成年人视频网站| 国产精品一区免费在线 | 欧美日韩不卡| 亚洲成av人片在线观看www| 亚洲国产精华液网站w| 欧美性色黄大片人与善| 黄色在线观看网| 国产三区在线成人av| 日韩欧美一区二区视频在线播放 | 久久99精品国产自在现线| 欧美xxxxxxxxx| 波多野结衣视频播放| 色愁久久久久久| 亚洲欧美国产日韩中文字幕| x88av在线| 先锋资源久久| 久久全球大尺度高清视频| 色婷婷av国产精品| 视频在线观看一区| 国产精品99导航| 一级黄色a视频| 国产成人亚洲综合a∨猫咪| 国产精品久久久久久免费观看| 欧美 日韩 中文字幕| 91丨porny丨在线| 亚洲国产精品毛片| wwwav在线| 福利视频导航一区| 天天干天天操天天做| 亚洲乱码一区| 亚洲美女自拍视频| 神马久久精品综合| 99国产精品久久久久久久| 国产精品久久久久久中文字| 国产日韩欧美中文字幕| www亚洲一区| 桥本有菜av在线| 欧美激情护士| 3atv一区二区三区| 亚洲天堂成人av| 91精品电影| 秋霞午夜一区二区| 不卡的日韩av| 超碰在线最新| av日韩在线网站| 亚洲v国产v在线观看| 四虎亚洲成人| 欧美亚洲自拍偷拍| 国产黑丝一区二区| 久久影院100000精品| 97国产精品免费视频| 在线观看一二三区| 99在线精品一区二区三区| 中文精品视频一区二区在线观看| 深夜在线视频| 日韩欧美成人一区| 黄色一级片一级片| 久久一区二区三区超碰国产精品| 91亚洲精品丁香在线观看| 成人精品福利| 日韩欧美第一页| 欧美久久久久久久久久久| 手机在线电影一区| 日韩美女av在线免费观看| 亚洲精品国偷拍自产在线观看蜜桃| 国产婷婷色一区二区三区在线| 欧美视频在线观看视频| 欧美大片91| 久久精品亚洲精品| 在线观看免费视频a| 91捆绑美女网站| 欧美综合在线播放| 国产一级成人av| 久久久久久美女| 99久久精品国产色欲| 国产精品久久久久久久久免费相片| 无遮挡又爽又刺激的视频| 欧美精品中文| 91av在线免费观看视频| 人人妻人人澡人人爽精品日本| 亚洲天堂中文字幕| 热久久久久久久久| 91综合在线| 成人福利在线观看| 国产二区三区在线| 一本一道久久a久久| 欧美精品日日鲁夜夜添| 国产99在线 | 亚洲| 日韩成人精品在线观看| 神马影院午夜我不卡| 麻豆精品蜜桃| 最好看的2019年中文视频| 日本三级一区二区三区| 国产欧美日本一区视频| wwww.国产| 国产精品国产一区| 91久久在线观看| 色女人在线视频| 精品盗摄一区二区三区| 国产精品7777777| 91美女蜜桃在线| 国产精品999视频| 真实原创一区二区影院| 97超碰蝌蚪网人人做人人爽| 午夜国产在线视频| 色综合天天狠狠| 亚洲一二三精品| 国产一区二区三区视频在线播放| 超碰97在线看| 蜜桃一区av| 国产精品劲爆视频| 黄色网址视频在线观看| 欧美大片免费久久精品三p| 日本网站在线免费观看| 久久久国产精品麻豆| 五月婷婷六月丁香激情| 欧美激情性爽国产精品17p| 精品国产一区二区三区麻豆免费观看完整版| 6699嫩草久久久精品影院| 亚洲欧洲在线看| 国产日韩精品suv| 黑人巨大精品欧美一区免费视频| 51调教丨国产调教视频| 噜噜噜久久亚洲精品国产品小说| 亚洲va韩国va欧美va精四季| 99精品国产高清一区二区麻豆| 538国产精品一区二区在线| 97最新国自产拍视频在线完整在线看| 91精品国产欧美一区二区18| 国产成人啪精品午夜在线观看| 久久精品一区蜜桃臀影院| 污污视频在线免费| 亚洲欧美日韩国产| 男人天堂成人网| 综合国产视频| 97操在线视频| 成人在线视频播放| 久久久久亚洲精品国产| 91伦理视频在线观看| 亚洲国产精品一区二区三区| 伊人网视频在线| 香蕉久久一区二区不卡无毒影院 | 国产精品情趣视频| 成人午夜精品无码区| 另类小说欧美激情| 欧美日韩在线视频一区二区三区| 999国产精品| 欧美另类一区| 国产成人av毛片| 666精品在线| 成人做爰免费视频免费看| 久久久亚洲网站| 菠萝菠萝蜜在线视频免费观看| 亚洲人a成www在线影院| 亚洲国产精品久久久久爰性色| 欧美三级中文字| 无码人妻精品一区二区| 午夜久久电影网| 九九九在线视频| 亚洲品质自拍视频| 少妇高潮惨叫久久久久| 国产日韩亚洲欧美综合| 中文字幕日韩三级片| 成人一级片网址| 69久久精品无码一区二区| 免费成人小视频| 青青在线视频免费| 黑人巨大精品| 亚洲国产综合91精品麻豆| 污污视频网站在线免费观看| 久久综合av免费| 久久中文字幕人妻| 91网站在线观看视频| 亚洲色图欧美日韩| 成人短视频下载| 欧美激情一区二区三区p站| 国产美女主播视频一区| 亚洲三级在线观看视频| 精品在线观看免费| 三级av免费观看| 另类欧美日韩国产在线| 无需播放器的av| 蜜臀av一区二区在线观看| 亚洲三级视频网站| 轻轻草成人在线| 性刺激的欧美三级视频| 美女视频网站久久| 亚洲欧美自拍另类日韩| 极品销魂美女一区二区三区| 亚洲第一天堂久久| 国产一区视频导航| 91精品国产高清91久久久久久 | 精品国产乱码久久久久夜深人妻| 国产乱色国产精品免费视频| 日韩欧美中文在线视频| 国产成人精品亚洲日本在线桃色 | 欧美日韩大片免费观看| 加勒比在线一区二区三区观看| 老司机aⅴ在线精品导航| 久久久久久久久一区二区| 精品中文一区| 亚洲国产欧美不卡在线观看| 欧美va久久久噜噜噜久久| 国产经典久久久| 在线观看一区| 青青草av网站| 韩国女主播成人在线观看| 波多野吉衣在线视频| 99久久婷婷国产综合精品 | 免费av网站在线播放| 精品视频在线播放色网色视频| 国内在线精品| 久久久精品久久久久| 成人影音在线| 国产成人福利网站| 国产激情一区| 你懂的视频在线一区二区| 日韩系列欧美系列| a天堂资源在线观看| 久热re这里精品视频在线6| 制服丝袜中文字幕第一页 | avhd101老司机| 国产精品最新自拍| 久久成人这里只有精品| 人人澡人人添人人爽一区二区| 97久久国产精品| 欧美综合影院| 精品一区二区三区免费毛片| 色乱码一区二区三区网站| 日本免费a视频| 麻豆高清免费国产一区| 欧美一级片黄色| 国产精品成人免费| 日韩 欧美 综合| 337p亚洲精品色噜噜噜| 日韩国产福利| 欧美成人免费va影院高清| 日本高清不卡一区二区三区视频 | 大香煮伊手机一区| 国产电影一区在线| 内射毛片内射国产夫妻| 亚洲国产精品久久久男人的天堂| 国产精品尤物视频| 欧美成人精品二区三区99精品| h网站在线免费观看| 性欧美视频videos6一9| 91精品国产一区二区在线观看| 成人国产一区二区| 93在线视频精品免费观看| aaaaaa亚洲| jlzzjlzz亚洲日本少妇| 欧美人禽zoz0强交| 欧美日韩视频在线观看一区二区三区| 少妇喷水在线观看| 欧美成人激情在线| 午夜精品久久久久久毛片| 欧美三级电影在线播放| 亚洲美女色禁图| 日韩高清一二三区| 亚洲视频在线一区观看| 中文区中文字幕免费看| 亚洲男人天堂古典| 黄色视屏在线免费观看| 高清日韩一区| 中文无码久久精品| 女人高潮一级片| 国产精品午夜在线| jizz国产在线| 亚洲欧洲高清在线| 国模套图日韩精品一区二区| 精品卡一卡二| 99在线精品免费视频九九视| 久久久久久久久久久久国产精品| 综合久久国产九一剧情麻豆| 糖心vlog精品一区二区| 亚洲欧美中文另类| 免费日韩电影| 欧美精品一区在线| 免播放器亚洲| 波多野结衣a v在线| 色婷婷综合在线| 韩国三级在线观看久| 国产精品国产自产拍高清av水多 | 亚洲男人的天堂在线| 另类图片综合电影| 日韩精品欧美在线| 蜜桃视频在线一区| 久久久99999| 欧美一区二区三区视频| 精品999在线| 精品在线播放午夜| 欧美一区二区三区爽爽爽| 日韩区在线观看| 国产第一页在线视频| 精品久久久久久综合日本| 久久久xxx| 国产又粗又猛又爽又黄的视频四季 | 精品97人妻无码中文永久在线| 欧美成人精品3d动漫h| 国语对白在线刺激| 九色91在线视频| 视频一区二区欧美| 中文字幕美女视频| 欧美一二区视频| 草草在线视频| 欧美在线播放一区| 极品少妇一区二区三区精品视频| 久草福利资源在线观看| 日韩精品中文字幕视频在线| xxx欧美xxx| 中文字幕色一区二区| 国产成人av资源| 中文字幕免费在线观看视频| 一本色道久久88综合亚洲精品ⅰ| 亚洲影视资源| 国产黄色片免费在线观看| 久久久久久久免费视频了| 一区二区国产欧美| 欧美激情小视频| 国产一区二区三区日韩精品| 91小视频在线播放| 欧美日韩另类字幕中文| 求av网址在线观看| 精品久久久久久一区二区里番| 麻豆精品精品国产自在97香蕉| 欧美久久久久久久久久久久| 亚洲欧美国产另类| 视频二区欧美毛片免费观看| 男人日女人bb视频| 亚洲欧美激情插 | 懂色av一区二区| 亚欧在线免费观看| 亚洲国产精品久久久久婷婷884| lutube成人福利在线观看| 国产精品中出一区二区三区| 免费在线观看视频一区|