在摩卡testing中没有发现柴的出口
我已经创build了简单的摩卡testing。 当使用Node“assert”模块时,它完美地工作。 我从命令行(Mocha作为全局节点模块安装)运行它:
$ mocha myTest.js ․ 1 test complete (6 ms)
该脚本如下所示:
var assert = require("assert") describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ assert.equal(-1, [1,2,3].indexOf(5)); assert.equal(-1, [1,2,3].indexOf(0)); }) }) })
那么,我试图添加柴而不是断言库。 我先安装它:
npm install chai
所以,在我的项目中创build了目录node_modules。 太好了。 然后,我改变了脚本使用柴:
var chai = require("chai"); describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ [1,2,3].indexOf(5).should.equal(-1); expect([1,2,3].indexOf(5)).to.equal(-1); assert.equal([1,2,3].indexOf(5),-1); }) }) });
它不起作用,摩卡testing失败TypeError:
TypeError: Cannot call method 'equal' of undefined
我认为柴没有定义,所以它是不确定的。
这怎么可能?
我怎样才能使我的testing与柴运行? 我试图安装柴全球没有任何效果。 我也用-r chai
运行脚本,也没有效果。
显然,Chai模块被加载,但没有定义variables(Object.prototype属性)。 我怎样才能解决这个问题?
var expect = require('chai').expect;
这将使您的expect
呼叫工作。 然而,你也有一个should
来自不同的图书馆完全来自,所以改变
[1,2,3].indexOf(5).should.equal(-1);
至
expect([1,2,3].indexOf(5)).to.equal(-1);