之前沒(méi)感覺(jué)要學(xué)啥單元測(cè)試,項(xiàng)目中測(cè)試都是手動(dòng)測(cè)的,但也沒(méi)覺(jué)的啥,但最近看文章和招聘上也多多少少有這方面的需求,于是網(wǎng)上搜索了一下,只找到了一些文章,但介紹的都不是很詳細(xì)或者說(shuō)比較復(fù)雜,滿滿的傷,雖然看懂一部分,但還是不知道有啥用,于是不了了之了。
但是就在今天又在某本書(shū)上講啥測(cè)試,實(shí)在坐不住了,于是下定決心,一定得搞定到底什么是單元測(cè)試,在實(shí)際項(xiàng)目中又是如何使用的,于是就有了此文章。
茫茫人海只為找到你......
搜索:Javascript單元測(cè)試入門、javascript單元測(cè)試教程、javascript單元測(cè)試視頻教程、JS單元測(cè)試教程.......這些都是我常搜索的關(guān)鍵字。
對(duì)于經(jīng)常干這個(gè)的,通過(guò)搜索結(jié)果馬上就能找到幾個(gè)比較適合自己的教程。
原本打算學(xué)Qunit這個(gè)單元測(cè)試但是沒(méi)有看到比較好的入門教程,其實(shí)也是有的,只是上一次看的時(shí)候沒(méi)有看一篇介紹它在實(shí)際項(xiàng)目中的應(yīng)用,所以打算換一個(gè)框架搜索。這里搜到了一個(gè)叫Karma的單元測(cè)試,并且講解通俗,簡(jiǎn)單的使用已經(jīng)會(huì)了,但可惜這篇文章也沒(méi)有講在實(shí)際開(kāi)發(fā)中的應(yīng)用,只好接著找,但這次既然Karma會(huì)了一些,自然搜索換成了這個(gè):Karma單元測(cè)試入門教程,Karma單元測(cè)試教程....
馬上找到一篇比較詳細(xì)的,雖然前面大部分講解的比較復(fù)雜,但因?yàn)橛辛饲懊娴幕A(chǔ),所以秒懂里面的意思了,里面簡(jiǎn)單的介紹了一個(gè)例子,但這已經(jīng)足夠了。
別看這小小的一段話,里面是一個(gè)不錯(cuò)的學(xué)習(xí)方式:先簡(jiǎn)單 -- 復(fù)雜 -- 項(xiàng)目實(shí)踐。也就是說(shuō)如果你要學(xué)習(xí)a,但是a方面的資源比較少,并且難懂,不過(guò)有個(gè)和它相鄰的b和它很像,這樣的話你可以搜索b,通過(guò)學(xué)習(xí)b來(lái)掌握一些基本的概念,通過(guò)掌握這些概念再來(lái)學(xué)習(xí)a就會(huì)簡(jiǎn)單很多。
底下是個(gè)人學(xué)習(xí)記錄,不會(huì)寫(xiě)的太詳細(xì),大家就不用看了,看看頂上的學(xué)習(xí)方式將好,反正感覺(jué)學(xué)編程用現(xiàn)實(shí)生活中怎么學(xué)習(xí)的,你拿到編程里面就很好了。
回歸到單元測(cè)試
Karma是一個(gè)單元測(cè)試,我們先來(lái)下載它。
1. 通過(guò)npm init初始化
package.json
2.通過(guò)npm下載Karma以及依賴項(xiàng)
npm install -g karma karma-jasmine karma-chrome-launcher
3.創(chuàng)建 karma 配置文件
karma init
編寫(xiě)測(cè)試demo.js
describe('隨便寫(xiě),就是看你看看是哪里來(lái)的', function(){
it('就是給你看看具體哪出來(lái)的 1', function(){
expect(true).toBe(true);
});
it(