Jestjs 用jest测试一个简单函数
我想用Jest测试一个简单的函数:Jestjs 用jest测试一个简单函数,jestjs,Jestjs,我想用Jest测试一个简单的函数: // src > filterByTerm.js function filterByTerm(inputArr, searchTerm) { if (!searchTerm) throw Error("searchTerm cannot be empty"); if (!inputArr.length) throw Error("inputArr cannot be empty"); // new line const rege
// src > filterByTerm.js
function filterByTerm(inputArr, searchTerm) {
if (!searchTerm) throw Error("searchTerm cannot be empty");
if (!inputArr.length) throw Error("inputArr cannot be empty"); // new line
const regex = new RegExp(searchTerm, "i");
return inputArr.filter(function(arrayElement) {
return arrayElement.url.match(regex);
});
}
module.exports = filterByTerm;
// filterByTerm.spec.js
const filterByTerm = require("../src/filterByTerm");
describe("Filter function", () => {
test("it should output error", () => {
const input = [
{ id: 1, url: "https://www.url1.dev" },
{ id: 2, url: "https://www.url2.dev" },
{ id: 3, url: "https://www.link3.dev" }
];
expect(filterByTerm(input, "")).toThrowError();
});
});
我的问题是,为什么这次考试不及格?如何从笑话中捕捉错误
谢谢我相信你应该这样做
if (!searchTerm) throw new Error("searchTerm cannot be empty");
及
您可以进一步阅读。您需要更改函数,因此请尝试以下方法 常量输出=[{id:3,url:https://www.link3.dev}]; 期望=>{ 输入 }.Tothrowerr 并将功能更改为此
if (!searchTerm) throw Error("searchTerm cannot be empty");
if (!inputArr.length) throw Error("inputArr cannot be empty");
尝试在另一个函数调用中包装expect函数: 而不是:
expect(filterByTerm(input, "")).toThrowError(errorMessage);
尝试:
其中errorMessage是您抛出的任何错误
expect(filterByTerm(input, "")).toThrowError(errorMessage);
expect(() => filterByTerm(input, "")).toThrow(errorMessage);