前言:如果我們要寫好我們的單元測(cè)試,可能我們要有好的布局,也要規(guī)劃好如何去創(chuàng)建單元測(cè)試的類,單元測(cè)試的方法,下面簡(jiǎn)單的說(shuō)一下。
如果我們把集成測(cè)試和單元測(cè)試放在一起如果出現(xiàn)問(wèn)題可能出現(xiàn)的原因比較多那么我們直接進(jìn)行分離,建立2套類庫(kù)。如下圖

2.1:每一個(gè)被測(cè)試的類對(duì)應(yīng)一個(gè)測(cè)試類
就是在測(cè)試項(xiàng)目中,用被測(cè)試類的名字加上UnitTests后綴命名。如果被測(cè)試類是Login,測(cè)試項(xiàng)目中創(chuàng)建的測(cè)試類就是LoginUnitTests。這種就是每一個(gè)類一個(gè)測(cè)試類。
2.2:每個(gè)功能對(duì)應(yīng)一個(gè)測(cè)試類
就是為每一個(gè)方法創(chuàng)建一個(gè)測(cè)試類,不過(guò)由于方法比較多,會(huì)出現(xiàn)大量的測(cè)試類,所以需要權(quán)衡一下,比喻項(xiàng)目中某些功能需要測(cè)試用例特別多那么你就需要為這單獨(dú)的功能添加測(cè)試類。比喻GetAuthory這個(gè)方法的測(cè)試用例比較多,那么我們就需要單獨(dú)的把他測(cè)試用例放一個(gè)類中。這時(shí)候我們需要?jiǎng)?chuàng)建2個(gè)測(cè)試類,AuthoryUnitTests_GetAuthory和AuthoryUnitTests前者包含GetAuthory的測(cè)試后者包含其他所有的測(cè)試。
在單元測(cè)試中我們盡量少些注釋,以至于不寫,那么我們就要寫出很高質(zhì)量的測(cè)試名稱,那么可以采取 準(zhǔn)備對(duì)象-操作對(duì)象-斷言 的模式。
準(zhǔn)備對(duì)象:就是你要為他測(cè)試的對(duì)象,說(shuō)白了就是你的方法名稱比喻AddUser,DeleteUser等
操作對(duì)象:你將要對(duì)這個(gè)對(duì)象具有什么樣的操作,比喻有效的用戶名,無(wú)效的用戶名等
斷言:就是對(duì)結(jié)果做出判斷,比喻這個(gè)操作會(huì)拋異常,這個(gè)操作正常,這個(gè)操作會(huì)失敗,這個(gè)值會(huì)發(fā)生改變等
下面舉個(gè)例子
AddUser_ValidUserInfo_ReturnsTrue
當(dāng)添加一個(gè)有效的用戶的時(shí)候應(yīng)該返回True
AddUser_IdIsNullOrEmpty_Throws
當(dāng)添加用戶的時(shí)候Id會(huì)Null或者Empty的時(shí)候回拋出異常。
比喻還有些調(diào)用沒(méi)有返回值但是可以看見狀態(tài)的改變
Add_WhenCalled_StateChange(Add為一個(gè)例子)
就是當(dāng)調(diào)用Add這個(gè)方法的時(shí)候回導(dǎo)致我們系統(tǒng)狀態(tài)的改變
以上只是建議。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注