gpt4 book ai didi

javascript - Mocha 抛出错误和测试的最佳方式

转载 作者:行者123 更新时间:2023-11-29 19:23:36 24 4
gpt4 key购买 nike

我想确保只允许整数作为参数,所以我写了这个测试。

describe('Assigning values', function () {
it('Should only be able to assign integers', function () {
var item = new Item();

expect(item.setValue('string').to.throw(Error, 'Not an integer'));
});
});

以及我正在测试的功能

  var testInteger = function(num) {
if (typeof num === 'number' && (num % 1 ) === 0) {
return;
} else {
throw new Error('Not an integer');
}
};

testInteger 从 setValue 调用。

这个测试失败了,我不知道应该怎么写。

最佳答案

to.throw 需要一个函数作为参数,即传入要测试的函数,而不是函数调用的结果。这确保了该方法实际上在 expect 中被激发并且异常将被抛出。

example in the Chai documentation很好,它只是将要测试的函数(在本例中为 throw err;)包装在一个匿名函数中:

var fn = function () { throw err; }
expect(fn).to.throw(Error);

所以你可以试试:

expect(function(){ item.setValue('string'); }).to.throw(Error, 'Not an integer');

另请注意,我所做的更改是将被测函数直接传递到 expect,然后将 to.throw 链接到此之后(括号位置).

关于javascript - Mocha 抛出错误和测试的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31953454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com