用摩卡测试json.parse



为什么使用摩卡进行测试时以下代码不通过?

我的示例模块:

module.exports = function(){
  JSON.parse("this is not json")
}

和我的测试.js:

var should = require("should")
var module = require("./module")
describe("error testing", function(){
  it("should throw an error", function(done){
    module().should.throw();
    done();
  })
})

我希望测试通过,但运行摩卡给了我以下内容:

✖ 1 of 1 tests failed:
1) error testing should throw an error:
   SyntaxError: Unexpected token h
    at Object.parse (native)
    at module.js:9:8
    at Context.<anonymous> (test.js:6:5)
    at Test.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:145:15)
    at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:270:10)
    at /usr/local/lib/node_modules/mocha/lib/runner.js:314:12
    at next (/usr/local/lib/node_modules/mocha/lib/runner.js:198:14)
    at /usr/local/lib/node_modules/mocha/lib/runner.js:207:7
    at next (/usr/local/lib/node_modules/mocha/lib/runner.js:157:23)
    at Array.0 (/usr/local/lib/node_modules/mocha/lib/runner.js:175:5)
    at EventEmitter._tickCallback (node.js:192:40)

should.throw() 期望在函数上调用,而不是函数的结果。更改此设置:

module().should.throw();

对此:

module.should.throw();

最新更新