天天看點

初窺Javascript單元測試,附帶掌握一門新技能的學習方式。

  之前沒感覺要學啥單元測試,項目中測試都是手動測的,但也沒覺的啥,但最近看文章和招聘上也多多少少有這方面的需求,于是網上搜尋了一下,隻找到了一些文章,但介紹的都不是很詳細或者說比較複雜,滿滿的傷,雖然看懂一部分,但還是不知道有啥用,于是不了了之了。

  但是就在今天又在某本書上講啥測試,實在坐不住了,于是下定決心,一定得搞定到底什麼是單元測試,在實際項目中又是如何使用的,于是就有了此文章。

茫茫人海隻為找到你......  

  搜尋:Javascript單元測試入門、javascript單元測試教程、javascript單元測試視訊教程、JS單元測試教程.......這些都是我常搜尋的關鍵字。

      對于經常幹這個的,通過搜尋結果馬上就能找到幾個比較适合自己的教程。

  原本打算學Qunit這個單元測試但是沒有看到比較好的入門教程,其實也是有的,隻是上一次看的時候沒有看一篇介紹它在實際項目中的應用,是以打算換一個架構搜尋。這裡搜到了一個叫Karma的單元測試,并且講解通俗,簡單的使用已經會了,但可惜這篇文章也沒有講在實際開發中的應用,隻好接着找,但這次既然Karma會了一些,自然搜尋換成了這個:Karma單元測試入門教程,Karma單元測試教程....

  馬上找到一篇比較詳細的,雖然前面大部分講解的比較複雜,但因為有了前面的基礎,是以秒懂裡面的意思了,裡面簡單的介紹了一個例子,但這已經足夠了。

  

  别看這小小的一段話,裡面是一個不錯的學習方式:先簡單 -- 複雜 -- 項目實踐。也就是說如果你要學習a,但是a方面的資源比較少,并且難懂,不過有個和它相鄰的b和它很像,這樣的話你可以搜尋b,通過學習b來掌握一些基本的概念,通過掌握這些概念再來學習a就會簡單很多。

  底下是個人學習記錄,不會寫的太詳細,大家就不用看了,看看頂上的學習方式将好,反正感覺學程式設計用現實生活中怎麼學習的,你拿到程式設計裡面就很好了。

回歸到單元測試

  Karma是一個單元測試,我們先來下載下傳它。

    1. 通過npm init初始化

      package.json

        2.通過npm下載下傳Karma以及依賴項

      npm install -g karma karma-jasmine karma-chrome-launcher

    3.建立 karma 配置檔案

      karma init

編寫測試demo.js

describe('随便寫,就是看你看看是哪裡來的', function(){   it('就是給你看看具體哪出來的 1', function(){     expect(true).toBe(true);   });   it('就是給你看看具體哪出來的 2', function(){     expect(true).toBe(false);   }) });

啟動 Karma

  karma start

結果:

初窺Javascript單元測試,附帶掌握一門新技能的學習方式。

解釋一下上面的代碼:

});  

describe:就是把你要測試的包起來,形成一個代碼塊,就像一個函數。

  第一個參數:随便寫,自己看一下上面的那張圖就知道怎麼回事了,第二個參數放一個函數。

it:負責單個測試,裡面可以放你要測試的代碼。

expect:用來測試這個參數裡面的值等于不等于toBe裡面的參數。toBe是你期望的結果,而expect放你需要測試的結果。

其實這段代碼沒啥複雜,但多少還是有些迷惑,ok,來一個更實際一點的。

function count(a,b){   return a + b; } describe('測試count函數', function(){   it('3 + 3 = 6', function(){     var a = count(3,3);     // expect實際結果  toBe希望的結果     expect(a).toBe(6);     var a = count(2,3);

結果如下:

初窺Javascript單元測試,附帶掌握一門新技能的學習方式。

到這裡我相信大家對單元測試多少有那麼一點點的了解了。

我的了解單元測試就是将一些線上可能會發生的一些bug情況,通過一些技術提前來發現并且解決bug。

接着我得去學習Qunit,就到這了。

繼續閱讀