前端實(shí)現(xiàn)自動(dòng)化就要借助到unit和e2e端到端測(cè)試了
一.unit測(cè)試
站在程序員的角度測(cè)試
unit測(cè)試是把代碼看成是一個(gè)個(gè)的組件就乓。從而實(shí)現(xiàn)每一個(gè)組件的單獨(dú)測(cè)試育韩,測(cè)試內(nèi)容主要是組件內(nèi)每一個(gè)函數(shù)的返回結(jié)果是不是和期望值一樣贱田。
例如:
const compare = (a,b) => a>b?a:b
對(duì)這個(gè)函數(shù)進(jìn)行測(cè)試
expect(compare(1,2)).to.equal(2) //ok
expect(compare(2,1)).to.equal(1) //ok
測(cè)試完成
而代碼覆蓋率是指代碼中每一個(gè)函數(shù)的每一中情況的測(cè)試情況筑悴,上述測(cè)試的代碼覆蓋率是100%
const compare = (a,b) => a>b?a:b
對(duì)這個(gè)函數(shù)進(jìn)行測(cè)試
expect(compare(2,1)).to.equal(1) //ok
測(cè)試完成
這樣代碼覆蓋率是50%混槐,因?yàn)閑lse情況沒(méi)有測(cè)試到
二.e2e測(cè)試
站在用戶角度的測(cè)試
e2e測(cè)試是把我們的程序堪稱是一個(gè)黑盒子狰贯,我不懂你內(nèi)部是怎么實(shí)現(xiàn)的,我只負(fù)責(zé)打開(kāi)瀏覽器刑棵,把測(cè)試內(nèi)容在頁(yè)面上輸入一遍巴刻,看是不是我想要得到的結(jié)果。
兩者的存在都是很有意義的铐望。
unit測(cè)試是程序員寫(xiě)好自己的邏輯后可以很容易的測(cè)試自己的邏輯返回的是不是都正確冈涧。
e2e代碼是測(cè)試所有的需求是不是都可以正確的完成,而且最終要的是在代碼重構(gòu)正蛙,js改動(dòng)很多之后,需要對(duì)需求進(jìn)行測(cè)試的時(shí)候測(cè)試代碼是不需要改變的营曼,你也不用擔(dān)心在重構(gòu)后不能達(dá)到客戶的需求乒验。