我一直在阅读这本书“测试JavaScript应用程序”。目前我卡在 *3.2.3.自定义匹配器 *。使用Jest扩展模块,但它不工作。
// inventoryController.js
const inventory = new Map();
const getInventory = () => {
const contentArray = Array.from(inventory.entries());
const contents = contentArray.reduce((contents, [name, quantity]) => {
return {...contents, [name]: quantity};
}, {});
return {...contents, generatedAt: new Date(new Date().setFullYear(3000))};
}
const addToInventory = (item, quantity) => {
if(!+quantity) throw new Error('Quantity must be a number');
const currentQuantity = inventory.get(item) || 0;
const newQuantity = currentQuantity + quantity;
inventory.set(item, newQuantity);
return newQuantity;
}
module.exports = {
inventory,
addToInventory,
getInventory
}
个字符
现在在测试用例generatedAt in the past
中得到错误。
我试图通过阅读jest-extended的官方文档来解决它,但似乎也不起作用。我认为可能是版本问题或配置文件有问题。让我分享它的细节。
// jest.config.js
module.exports = {
testEnvironment: "node",
setupFilesAfterEnv: ["jest-extended"]
// globalSetup: "./globalSetup.js",
// globalTeardown: "./globalTeardown.js"
};
型
1条答案
按热度按时间f4t66c6m1#
根据the documentation,您还应该在
setup
文件中扩展expect
匹配。字符串
setupFilesAfterEnv
应指向此安装文件,而不是指向jest-extended
库型