柴出口不在摩卡检验中发现
Chai exports are not found in Mocha test
我创建了一个简单的Mocha测试。当使用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,但没有效果。我还用-r chai
运行了这个脚本,但没有任何效果。
显然,Chai模块已加载,但没有定义变量(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);
相关文章:
- javascript从任何嵌入式flash视频中发现.flvurl
- 用于发现哪个JS/jQuery脚本正在冻结页面的工具或技术
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- 我发现了一些只在移动设备上可见的垃圾邮件链接,我可以'找不到包含此垃圾邮件链接的脚本的位置
- 如何在Node.js控制台中发现Object API
- 在文件中发现此恶意javascript..它做什么
- Chrome审核:在外部CSS文件之间的头中发现了1个内联脚本块&”;
- 无法读取属性'编译'的未定义.可以'我似乎没有发现错误
- 如何发现用户是否使用jQuery滚动到HTML容器的末尾
- 我的代码很完美,但我现在不知道为什么我发现了问题
- 从angularjs文件调用apicontroller时未发现错误
- 如何发现至少有一个复选框被选中或没有使用javascript
- 有人能发现我的错误吗(自动完成文本框)
- 过度杀戮?使用indexOf()来发现字符串的内容
- 发现这个讨厌的代码,我想知道它有什么作用?我应该担心吗..
- 为什么只有最新的按钮才能工作?我发现其他按钮的点击函数为空
- 在我的javascript文件中发现的这个奇怪的代码是什么
- 如果在数组中发现重复,则必须通过纯javascript添加带关键字的索引
- 在javascript中更改变量值时未发现节点错误
- 柴出口不在摩卡检验中发现