如何解决“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';
- 如何以编程方式closuresExpressJS的实例进行testing?
- mocha before()中的asynchronous函数在it()spec之前完成了吗?
- 如何用Karma(testacular)testingnodejs后端代码
- 代码覆盖与摩卡
- 如何模拟一个ES6模块的import?
- 运行摩卡testing时,Babel意外的令牌导入
- 如何使用Mochatesting“正常”(非特定于Node的)JavaScript函数?
- 用Mochatestingjavascript – 我如何使用console.log来debuggingtesting?
- 如何在运行unit testing时抑制来自node.js应用程序的应用程序日志消息?