2013-03-19 392 views
5

我開始使用JavaScript單元測試(與茉莉花)。單元測試javascript代碼風格

我有單元測試C#代碼的經驗。但考慮到JavaScript是一種動態語言,我發現它非常有用利用這一點,並使用寫測試的JavaScript的表現力,例如:

describe('known plugins should be exported', function(){ 
    var plugins = ['bundle','less','sass','coffee','jsn','minifyCSS','minifyJS','forward','fingerprint']; 

    plugins.forEach(function(plugin){ 
     it('should export plugin named ' + plugin, function(){ 
      expect(all[plugin]).toBeDefined(); 
     }); 
    }); 
}); 

至於做這種非傳統的測試 - 寫作,我沒有比做這種測試(陣列的測試案例非常相似的列表)走得更遠

所以我想我的問題是

它是細寫這樣的測試,或者我應該將自己限制在一個更「靜態類型」的測試夾具上?

回答

3

偉大的問題!

是的,編寫像這樣的單元測試是完全正確的。它甚至被鼓勵。

JavaScript是一種動態語言,您可以輕鬆地模擬對象。 DI和IoC都是真的很容易做到。 一般來說,用茉莉花(或我個人比較喜歡的摩卡)進行測試是一種愉快而有趣的體驗。

值得一提的是,由於您使用的是動態語言,因此您需要進行測試,而不是使用靜態類型語言。測試通常會強制執行現有的成員和方法以及類型。

由於沒有接口來定義你的合同,通常,你的測試定義合約代碼的所以真的並不少見測試做這種驗證的(就像在你的代碼),您不會在C#。

+1

絕對,我主要是想表達一下這樣的測試用例是否感到混亂 – bevacqua 2013-03-19 20:44:19