javascript - 为什么我的 mocha/chai Error throw 测试失败了?

标签 javascript mocha.js throw referenceerror chai

我有一个要测试的简单 javascript 包。我想检查是否抛出了错误,但是当我的测试运行并抛出错误时,测试被标记为失败。

代码如下:

var should = require('chai').should(),
    expect = require('chai').expect();

describe('#myTestSuite', function () {

    it ('should check for TypeErrors', function () {

        // Pulled straight from the 'throw' section of
        // http://chaijs.com/api/bdd/
        var err = new ReferenceError('This is a bad function.');
        var fn = function () { throw err; }
        expect(fn).to.throw(ReferenceError);

    })

})

其中,运行时给我以下输出:

kh:testthing khrob$ npm test

> testthing@0.1.0 test /Users/khrob/testthing
> mocha



  #myTestSuite
    1) should check for TypeErrors


  0 passing (5ms)   1 failing

  1) #myTestSuite should check for TypeErrors:
     TypeError: object is not a function
      at Context.<anonymous> (/Users/khrob/testthing/test/index.js:10:3)
      at callFn (/Users/khrob/testthing/node_modules/mocha/lib/runnable.js:249:21)
      at Test.Runnable.run (/Users/khrob/testthing/node_modules/mocha/lib/runnable.js:242:7)
      at Runner.runTest (/Users/khrob/testthing/node_modules/mocha/lib/runner.js:373:10)
      at /Users/khrob/testthing/node_modules/mocha/lib/runner.js:451:12
      at next (/Users/khrob/testthing/node_modules/mocha/lib/runner.js:298:14)
      at /Users/khrob/testthing/node_modules/mocha/lib/runner.js:308:7
      at next (/Users/khrob/testthing/node_modules/mocha/lib/runner.js:246:23)
      at Object._onImmediate (/Users/khrob/testthing/node_modules/mocha/lib/runner.js:275:5)
      at processImmediate [as _immediateCallback] (timers.js:336:15)



npm ERR! Test failed.  See above for more details. 
npm ERR! not ok code 0

我知道这里有很多关于传递给 expect() 的是函数而不是函数的结果的答案,我已经尝试了我能想到的匿名函数化的每一种排列,但我总是失败测试结果。

我认为这一定与我的配置有关,因为我基本上只是运行文档中的示例,或者我对测试通过或失败的期望没有正确校准。

有什么线索吗?

最佳答案

这应该可以解决您的问题:

var expect = require('chai').expect;

请注意 expect 函数没有被调用。

关于javascript - 为什么我的 mocha/chai Error throw 测试失败了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26072381/

相关文章:

javascript - 将自定义消息身份验证代码从 Java 转换为 JavaScript

node.js - ES6 Istanbul 尔代码覆盖率 : how to test correctly a branch

javascript - 如何在 Javascript 循环中触发的回调函数中抛出一次错误?

ios - 在 objective-c 中抛出自定义异常

javascript - 缩放后获取鼠标在 SVG 坐标中的位置

javascript - 当用户滚动时继续修改 DOM

javascript - 我们可以在对话框中使用 select2 吗?

javascript - 如何在nodejs中使用chai期望http错误和响应

node.js - NPM 包版本错误,Mocha 未知选项 --exit

javascript - Safari 是否支持 javascript window.onerror?