欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

React總結(jié)篇之八_單元測(cè)試-創(chuàng)新互聯(lián)

一、單元測(cè)試的原則
從不同的角度,可以將測(cè)試劃分為如下不同的種類(lèi):

創(chuàng)新互聯(lián)建站是一家專(zhuān)注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作和德陽(yáng)電信服務(wù)器托管的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗(yàn)和案例。
  • 從人工操作還是寫(xiě)代碼來(lái)操作的角度,可以分為手工測(cè)試和自動(dòng)化測(cè)試;
  • 從是否需要考慮系統(tǒng)的內(nèi)部設(shè)計(jì)角度,可以分為白盒測(cè)試和黑盒測(cè)試;
  • 從測(cè)試對(duì)象的級(jí)別,可以分為單元測(cè)試、集成測(cè)試和端到端測(cè)試;
  • 從測(cè)試驗(yàn)證的系統(tǒng)特性,又可以分為功能測(cè)試、性能測(cè)試和壓力測(cè)試。

單元測(cè)試是一種自動(dòng)化測(cè)試,測(cè)試代碼和被測(cè)的對(duì)象非常相關(guān),比如測(cè)試React組件的代碼就和測(cè)試jQuery的插件的代碼完全不是一回事。
單元測(cè)試代碼一般都由編寫(xiě)對(duì)應(yīng)功能代碼的開(kāi)發(fā)者來(lái)編寫(xiě),開(kāi)發(fā)者提交的單元測(cè)試代碼應(yīng)該保持一定的覆蓋率,而且必須永遠(yuǎn)能夠運(yùn)行通過(guò)。可以說(shuō),單元測(cè)試是保證代碼質(zhì)量的第一道防線。

開(kāi)發(fā)者應(yīng)該注意:
首先,即使單元測(cè)試覆蓋率達(dá)到100%,也不表示程序是沒(méi)有bug的;
另外,程序架構(gòu)的可測(cè)試性非常重要,需要架構(gòu)能把程序拆分成足夠小到方便測(cè)試的部分,只要每個(gè)小的部分被驗(yàn)證能夠正確的各司其職,組合起來(lái)能夠完成整體功能,那么開(kāi)發(fā)者編寫(xiě)的單元測(cè)試就可以專(zhuān)注于測(cè)試各個(gè)小的部分就行,這就是更高的可測(cè)試性。


二、單元測(cè)試環(huán)境搭建

  • 單元測(cè)試框架
  • 單元測(cè)試代碼組織
  • 輔助工具
  1. 單元測(cè)試框架
    常見(jiàn)的是以下兩種:
    • 用Mocha測(cè)試框架,但是Mocha并沒(méi)有斷言庫(kù),所以往往還要配合Chai斷言庫(kù)來(lái)使用,也就是Mocha+Chai的組合。
    • 使用React的本家Facebook出品的Jest,Jest自帶了斷言等功能,相當(dāng)于包含了Mocha和Chai的功能,不過(guò)Jest和Chai并不一致。

create-react-app創(chuàng)建的應(yīng)用中自帶了Jest庫(kù),Jest會(huì)自動(dòng)在當(dāng)前目錄下尋找滿(mǎn)足下列任一條件的JavaScript文件作為單元測(cè)試代碼來(lái)執(zhí)行:

  • 文件名以.test.js為后綴的代碼文件;
  • 存于test目錄下的代碼文件
  1. 單元測(cè)試代碼組織
    單元測(cè)試代碼的最小單位是測(cè)試用例,每一個(gè)測(cè)試用例考驗(yàn)的是被測(cè)試對(duì)象在某一特定場(chǎng)景下是否有正確的行為。在Jest框架下,每個(gè)測(cè)試用例用一個(gè)it函數(shù)代表,it函數(shù)的第一個(gè)參數(shù)是一個(gè)字符串,代表的是測(cè)試用例名稱(chēng),第二個(gè)參數(shù)是一個(gè)函數(shù),包含的就是實(shí)際的測(cè)試用例的過(guò)程。一個(gè)很簡(jiǎn)單的單元測(cè)試用例代碼如下:
    it(’should return object when invoked',()=>{
    //增加斷言語(yǔ)句
    });

組織多個(gè)it函數(shù)實(shí)例,即測(cè)試套件。
在Jest中用describe函數(shù)描述測(cè)試套件,一個(gè)測(cè)試套件的代碼如下:
describe('actions',()=>{
it('should return object when invoked',()=>{});
//可以有更多的it函數(shù)調(diào)用
})

describe函數(shù)包含與it函數(shù)一樣的參數(shù),兩者主要的區(qū)別就是describe可以包含it或者另一個(gè)describe函數(shù)調(diào)用,但是it卻不能。
describe中有如下特殊函數(shù)可以幫助重用代碼:

  • beforeAll:在開(kāi)始測(cè)試套件之前執(zhí)行一次;
  • afterAll:在結(jié)束測(cè)試套件中所有測(cè)試用例之后執(zhí)行一次;
  • beforeEach:每個(gè)測(cè)試用例在執(zhí)行之前都執(zhí)行一次;
  • afterEach:每個(gè)測(cè)試用例在執(zhí)行之后都執(zhí)行一次
  1. 輔助工具

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

本文名稱(chēng):React總結(jié)篇之八_單元測(cè)試-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://chinadenli.net/article12/gsjgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google網(wǎng)站建設(shè)網(wǎng)站維護(hù)網(wǎng)站設(shè)計(jì)公司外貿(mào)建站手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)