带有expect的mocha不适用于测试错误
mocha with expect is not working for testing errors
在下面的脚本中,只有一个测试通过。测试错误(throw error())失败,返回消息1) 测试应该抛出错误:
var expect = require('chai').expect;
describe("a test", function() {
var fn;
before(function() {
fn = function(arg){
if(arg == 'error'){
throw new Error();
}else{
return 'hi';
}
}
});
it("should throw error", function() {
expect(fn('error')).to.throw(Error);
});
it("should return hi", function() {
expect(fn('hi')).to.equal('hi');
});
});
如何更改预期测试错误?
expect()
需要一个函数来调用,而不是函数的结果。
将您的代码更改为:
expect(function(){ fn("error"); }).to.throw(Error);
如果你用节点的方式进行错误优先回调,它看起来更像这样:
var expect = require('chai').expect;
describe("a test", function() {
var fn;
before(function() {
fn = function(err, callback){
if(err) throw new Error('failure');
return callback();
}
});
it("should throw error", function() {
expect(fn('error')).to.throw(Error);
});
it("should return hi", function() {
var callback = function() { return 'hi' };
expect(fn(null, callback).to.equal('hi');
});
});
相关文章:
- AddEventListener适用于浏览器,但不适用于Android
- 查找仅适用于原始图像的图像放大算法的名称
- 如何在category.php中执行jquery,这应该适用于类别wordpress中的每个帖子
- Web编程,简单但适用于机器人项目
- JavaScript不适用于internet explorer和Firefox,但适用于谷歌
- Jquery事件处理程序仅适用于匿名函数
- jQuery调整大小函数只适用于窗口
- 火灾在卸载前确认警报仅适用于外部站点
- EmberJS-适用于各种模型的适配器动态名称空间
- Facebook共享链接适用于用户,但不适用于粉丝页面管理员
- jQuery-适用于移动设备的多级菜单
- 循环中的切换脚本只适用于第一次迭代
- 为什么setTimeout适用于无休止的递归调用
- 我未保存的更改指令需要适用于具有不同名称的所有表单
- 适用于多种浏览器的Selenium-需要能够执行javascript的webDriver
- Sails.js/Waterline.add()和.remove()仅适用于第二次调用
- jQuery点击事件仅适用于横向(iPhone)
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- 角度单元测试适用于测试页面,但在 Chutzpah 中出现错误