我正在尝试使用Teaspoon gem for Rails(以ChaiJS作为我的断言库)来测试我的构造函数是否会抛出错误。
当我运行以下测试时:
it('does not create the seat if x < 0', function() {
var badConstructor = function() {
return new Seat({ radius: 10, x: -0.1, y: 0.2, seat_number: 20, table_number: 30});
};
expect(badConstructor).to.throw(Error, 'Invalid location');
});
我得到以下输出:
失败:
1) Seat does not create the seat if x < 0
Failure/Error: undefined is not a constructor (evaluating 'expect(badConstructor).to.throw(Error(), 'Invalid location')')
构造函数抛出错误,但是我认为我没有正确编写测试。
当我尝试运行
expect(badConstructor())
时,我得到了输出:Failures:
1) Seat does not create the seat if x < 0
Failure/Error: Invalid location
最佳答案
有同样的问题。用一个函数包装构造函数:
var fcn = function(){new badConstructor()};
expect(fcn).to.throw(Error, 'Invalid location');
关于javascript - ChaiJS期望构造函数抛出错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30176093/