我创建了简单的摩卡测试。当使用 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));
})
})
})
好吧,我尝试添加 Chai 而不是断言库。我先安装了它:
npm install chai
所以,我的项目中已经创建了 node_modules 目录。到目前为止很棒。然后,我修改了脚本以使用 Chai:
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);
})
})
});
它不起作用,Mocha 测试失败并出现 TypeError:
TypeError: Cannot call method 'equal' of undefined
我认为 Chai 没有定义应该所以它是未定义的。
这怎么可能?
我怎样才能让我的测试用 Chai 运行?我试图在全球范围内安装 Chai,但没有任何效果。我也运行了脚本,-r chai
但没有任何效果。
显然,Chai 模块已加载,但未定义变量(Object.prototype 属性)。我怎样才能解决这个问题?