gpt4 book ai didi

javascript - Jest : . toThrow 匹配器未通过错误测试

转载 作者:行者123 更新时间:2023-12-02 23:04:50 24 4
gpt4 key购买 nike

我想测试函数的无效输入并期望函数抛出异常在该输入上。然而测试没有通过,但函数仍然抛出错误。我是一个 Jest 初学者,所以我不知道为什么会发生这种情况。

我的函数如下所示:

export class MyClass{
static theFunction(tokens){
let result = [];
if (typeof tokens[0] === "string") {
return tokens;
} else {
try {
for(let token of tokens){
result.push(token.text);
}
return result;
} catch (e) {
throw new Error(e); //also tried throw e; and no try/catch aswell
}
}
}
}}

Test.js:

import {MyClass} from './MyClass'
describe('Test the MyClass:', () => {
test('invalid inputs for thefunction()', () => {
expect(MyClass.theFunction(0)).toThrow(/*'TypeError: tokens is not iterable'*/);
//Tried with and without the Error Message
});
});

我错过了什么?

最佳答案

将您的函数包装在匿名函数中,以便 Jest 可以捕获错误:

describe('Test the MyClass:', () => {
test('invalid inputs for thefunction()', () => {
expect( () => { MyClass.theFunction(0) } ).toThrow();
});
});

您可能想阅读有关 toThrow() in the Jest documentation 的部分并检查 implementation in the Jest project在 Github 上。

关于javascript - Jest : . toThrow 匹配器未通过错误测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57636998/

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