如何解决“ReferenceError:期望未定义”的错误信息?

我正在尝试用摩卡testingJavascript。 我有这段代码:

describe('Array', function() { describe('indexOf()', function() { it("dovrebbe tornare -1 quando l'elemento non è presente", function() { expect([1,2,3].indexOf(4)).to.equal(-1) }) }) }) 

和一个test/array.js文件。 摩卡被安装了

 $ npm install -g mocha 

当我跑步

 $ mocha 

我得到这个错误:

 $ mocha ․ 0 passing (5ms) 1 failing 1) Array indexOf() dovrebbe tornare -1 quando l'elemento non è presente: ReferenceError: expect is not defined at Context.<anonymous> (/Users/simonegentili/Desktop/Javascipt Best Practice/test/array.js:4:4) at Test.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:211:32) at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:358:10) at /usr/local/lib/node_modules/mocha/lib/runner.js:404:12 at next (/usr/local/lib/node_modules/mocha/lib/runner.js:284:14) at /usr/local/lib/node_modules/mocha/lib/runner.js:293:7 at next (/usr/local/lib/node_modules/mocha/lib/runner.js:237:23) at Object._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:261:5) at processImmediate [as _immediateCallback] (timers.js:317:15) 

摩卡是一个试运行者; 你需要提供你自己的断言库作为https://mochajs.org/#assertions状态。; 因此, expect确实是不确定的,因为你从来没有定义它。

(我推荐柴 )

 npm install chai 

然后

(见Amit Choukroune的评论指出实际上需要chai)

然后

 var expect = chai.expect; 

尝试

首先,在terminal

npm install expect.js

在你的代码中:

 var expect = require('expect'); 

如果您使用Mocha进行TDD,请安装Expect.js或Chai.js

那么,请npm install expect或者npm install chai

在我的使用案例中,我通过karma运行摩卡规格。 解决的办法是为我的testing框架libs安装karma集成:

 npm install karma-mocha --save-dev npm install karma-sinon-chai --save-dev 

…并将框架添加到我的karma.conf.js

 module.exports = function(config) { config.set({ browsers: ['Chrome'], frameworks: ['mocha', 'sinon-chai'], files: [ '.tmp/**/*.spec.js' ], client: { chai: { includeStack: true }, mocha: { reporter: 'html', ui: 'bdd' } } }) } 

希望这可以帮助别人。

在你安装Chai后,其他post提示,使用es6语法,你应该把导入放在最上面

 import {expect} from 'Chai';