2013-08-12 39 views
4

我在StackOverflow上看到,兩年前快報,誓言和摩卡是在node.js的單元測試的不錯的選擇,但是現在呢?我還沒有找到更近的問題。Node.js的單元測試

+0

不必問「*怎麼樣現在*」是的,爲什麼這些類型的問題[被認爲是題外話了這麼]有很大一部分(http://stackoverflow.com/help/dont-ask) 。他們很可能會吸引大部分的迴應,並可能很容易過時。 –

+0

如果你只是在尋找一個可能性列表,Node.js有一個Wiki頁面的模塊:https://github.com/joyent/node/wiki/modules#testing--spec-frameworks –

回答

2

摩卡是最流行的單元測試框架,但我不很喜歡,因爲錯誤的參數應該是一個錯誤的對象,例如,你不能傳遞錯誤的數組。 Tap和should.js也很不錯。

如果你並不需要這些框架的所有功能,你可以建立自己與內置assert模塊。沒有依賴關係,沒有臃腫的代碼,只需幾行,很容易。

var tests = { 
    "description 1": function (done){ 
     testSomethingAsync (function (error){ 
      assert.ifError (error); 

      //assert other things 

      done(); 
     }); 
    }, 
    "description 2": function(){ 
     var res = testSomethingSync(); 
     //assert other things 
    } 
}; 

var keys = Object.keys (tests); 
var keysLength = keys.length; 

(function again (i){ 
    if (i<keysLength){ 
     var fn = tests[keys[i]]; 
     if (fn.length){ 
      fn (function(){ 
       again (i + 1); 
      }); 
     }else{ 
      fn(); 
      again (i + 1); 
     } 
    } 
})(0); 
+0

也使用了摩卡我喜歡使用「應該」而不是斷言的行爲驅動開發方法。在我看來,這是測試應用程序的更好方法。 – Endymion

+0

test-studio是一個npm包,它爲單元測試提供了一個功能強大的基於Web的前端。它支持諸如執行單個或多組測試以及將節點檢查器逐步進行單獨測試等事情。 在https://www.npmjs.org/package/test-studio和http://www.danderson00.com/2014/05/test-studio-unit-testing-for-nodejs-how查閱更多信息。 html的。 –