2013-08-02 21 views
0

正如我的用戶名所示,我是Node的全新功能。我非常喜歡很多想法。我只是想開始學習它。我希望瞭解的一件事是如何使用Node設置測試驅動的環境。在Node.js上使用Mocha的記者

目前,我有一個基本的JavaScript文件,稱爲ToTest.min.js。這個文件定義了一個名爲ToTest的類,它公開了一個名爲getItems的方法。爲了測試該方法,我寫下面的代碼在Test.js:

var should = require("should"); 
var toTest = require("../ToTest.min.js"); 

describe('ToTest.js', function() { 
    describe('test1', function() { 
     var t = new ToTest(); 
     var items = t.getItems(); 

     console.log("Result: " + items.length); 
     t.should.have.length(1); 
    }); 
}); 

我從命令行通過執行此文件:

mocha Test.js 

其被執行時,我看到下面的輸出:

Result: 0 

C:\Projects\MyProject\node_modules\sh 
ould\lib\should.js:130 
    throw err; 
     ^
AssertionError: expected [] to have a length of 1 but got 0 
    at Object.Assertion.length (C:\Projects\MyProject\node_modules\should\lib\should.js:434:10) 
    at Suite.<anonymous> (C:\Projects\MyProject\Test.js:9:27) 
    at context.describe.context.context (C:\Users\Myself\AppData\Roaming\npm\n 
ode_modules\mocha\lib\interfaces\bdd.js:72:10) 
    at Suite.<anonymous> (C:\Projects\MyProject\Test.js:5:5) 
    at context.describe.context.context (C:\Users\Myself\AppData\Roaming\npm\n 
ode_modules\mocha\lib\interfaces\bdd.js:72:10) 
    at Object.<anonymous> (C:\Projects\MyProject\Test.js:4:1) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at C:\Users\Myself\AppData\Roaming\npm\node_modules\mocha\lib\mocha.js:152 
:27 
    at Array.forEach (native) 
    at Mocha.loadFiles (C:\Users\Myself\AppData\Roaming\npm\node_modules\mocha 
\lib\mocha.js:149:14) 
    at Mocha.run (C:\Users\Myself\AppData\Roaming\npm\node_modules\mocha\lib\m 
ocha.js:306:31) 
    at Object.<anonymous> (C:\Users\Myself\AppData\Roaming\npm\node_modules\mo 
cha\bin\_mocha:339:7) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:901:3 

如何讓記者工作,使單元測試的結果格式化得更好?我試過

mocha Test.js -R dot 

我收到了同樣的結果。

+0

你是什麼意思格式化更好?當測試失敗時,stacktrace非常有用 –

回答

1

啊,你需要使用it功能進行實際測試,而不是describe

var should = require("should"); 
var toTest = require("../ToTest.min.js"); 

describe('ToTest.js', function() { 
    it('test1', function() { 
     var t = new ToTest(); 
     var items = t.getItems(); 

     console.log("Result: " + items.length); 
     t.should.have.length(1); 
    }); 
}); 
+0

即使使用該命令,我仍然會得到相同的錯誤。 –

+0

我不應該說錯誤。只是結果沒有格式化。 –

+0

這應該有所幫助。摩卡仍然會打印堆棧跟蹤,但你會得到一個很好的信息,如「AssertionError:expected [1,2]長度爲1但得到2」 –

相關問題