weex項(xiàng)目使用jest編寫(xiě)簡(jiǎn)單的單元測(cè)試

前言:最近要求要寫(xiě)單元測(cè)試了,可是對(duì)單元測(cè)試并沒(méi)有什么了解,于是趕緊各種google。
最后簡(jiǎn)單的來(lái)說(shuō),就是與真實(shí)業(yè)務(wù)邏輯代碼完全隔離的另一份差不多相同的代碼,這些代碼就叫測(cè)試代碼,可以單獨(dú)只測(cè)試一個(gè)方法,一個(gè)組件,或者對(duì)一個(gè)小功能模塊的測(cè)試,在你的真實(shí)業(yè)務(wù)邏輯代碼運(yùn)行時(shí)先運(yùn)行與之對(duì)應(yīng)的測(cè)試代碼,看是否達(dá)到了預(yù)期的要求,做到真實(shí)運(yùn)行前知道錯(cuò)誤并且處理。
比如,要測(cè)試一個(gè)求和的方法,傳入2+2,是否進(jìn)行了正確的相加計(jì)算并返回了自己期望的正確的值呢?
開(kāi)始:jest,是一個(gè)專門(mén)對(duì)javascript代碼進(jìn)行測(cè)試的,以前是fecebook自家的,后來(lái)開(kāi)源了,用的人也不少,功能很強(qiáng)大,
使用npm安裝:
npm install --save-dev jest

或者通過(guò)yarn安裝:
yarn add --dev jest

將下面的配置部分添加到你的 package.json 里面:
{
"scripts": {
"test": "jest"
}
}
好了,就是這么簡(jiǎn)單,安裝完成了!
開(kāi)始編寫(xiě)測(cè)試代碼:
在項(xiàng)目中新建文件夾:test 測(cè)試的代碼會(huì)全部寫(xiě)在這里,命名格式為,如要測(cè)試a.js,相對(duì)應(yīng)的測(cè)試代碼就是a.test.js,

image.png

image.png

完成后如圖。
簡(jiǎn)單的例子,求兩個(gè)數(shù)相加,是否是我期待的和:
image.png

image.png

要測(cè)試的和與之對(duì)應(yīng)的測(cè)試代碼寫(xiě)好后,運(yùn)行:npm test
image.png

測(cè)試通過(guò)!沒(méi)有報(bào)錯(cuò),看了這個(gè)方法還是可靠的,那么將toBe(4)改成5,來(lái)看看他是如何報(bào)錯(cuò)的。
image.png

報(bào)錯(cuò)是不是很精準(zhǔn)?
jest使用匹配器讓你來(lái)用不同的方式測(cè)試值,不同作用的匹配器太多了,比如:
toBeNull 只匹配 null
toBeUndefined 只匹配 undefined
toBeDefined 與 toBeUndefined 相反
toBeTruthy 匹配任何 if 語(yǔ)句為真
toBeFalsy 匹配任何 if 語(yǔ)句為假
還有其他相對(duì)應(yīng)的string,array,object的匹配器,還有其他如當(dāng)你運(yùn)行異步代碼時(shí),Jest 需要知道它當(dāng)前測(cè)試的異步代碼什么時(shí)候完成,才可以運(yùn)行到下一個(gè)測(cè)試,最后jest官網(wǎng)在此(支持中文):https://facebook.github.io/jest/zh-Hans/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容