gpt4 book ai didi

javascript - Mocha Chai - 使用 'expect' 并想要捕获 'RangeError: Maximum call stack size exceeded' 错误

转载 作者:行者123 更新时间:2023-12-01 03:44:01 25 4
gpt4 key购买 nike

我正在使用MochaChai作为 Javascript 测试套件。

我想在我的测试中捕获“RangeError:超出最大调用堆栈大小”失败。

JS

function isEven(num){
if (num === 0) {
return true;
} else if (num === 1) {
return false;
} else {
return isEven(num - 2);
}
}

// Example Call
isEven(-10); //Throws the error 'call stack'

我一直在使用.throw但运气不好

expect(isEven(-1)).to.throw(ReferenceError, 'RangeError: Maximum call stack size exceeded');

expect(isEven(-1)).to.throw(err);

两者都没有成功。

我在终端中收到以下错误

npm ERR! Test failed.  See above for more details.

以上详情显示RangeError: Maximum call stack size exceeded

非常感谢任何帮助

最佳答案

expect(...).to.throw() 需要一个函数(因此 Chai 可以运行该函数并捕获任何错误)。您将函数的结果传递给它(或者至少尝试这样做)。

试试这个:

expect(isEven.bind(null, -10)).to.throw(RangeError);

这有点类似于:

function toTest() {
isEven(-10);
}
expect(toTest).to.throw(RangeError);

关于javascript - Mocha Chai - 使用 'expect' 并想要捕获 'RangeError: Maximum call stack size exceeded' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43686360/

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