gpt4 book ai didi

typescript - 使用 Jest 测试 i18next 时如何修复 `TypeError: Cannot read property ' 类型'未定义`

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

我有一个 react 项目,我已经包含了 i18next = 15.0.4 和 react-i18next = 10.2.0 依赖项。我已经创建了一个使用 react-i18next 初始化 i18next 的模块,并且我正在尝试使用 Jest 对该代码进行单元测试。

我尝试导入初始化 i18next 的 i18n 模块并使用 jest 对其进行单元测试。

这是我的 i18n.ts 模块

import i18next from "i18next";
import { initReactI18next } from "react-i18next";

const config = {
resources: {
en: {
static: {},
},
},
fallbackLng: "en",
defaultNS: "static",
ns: "static",
interpolation: {
prefix: "[",
suffix: "]",
},
};

i18next.use(initReactI18next).init(config);

export default i18next;

我试图从我的测试代码中调用它(i18n.test.ts):
import i18n from "./i18n";

describe("i18n", () => {

it("should work fine", () => {
const strings = {
key: "value",
};
i18n.addResourceBundle("en", "static", strings, true, true);
});
});


我希望这个测试能够通过,但是我得到了以下错误:
TypeError: Cannot read property 'type' of undefined
at I18n.use (node_modules/i18next/dist/commonjs/i18next.js:257:18)

这基本上指出了 i18next.js 中的这段代码
    value: function use(module) {
if (module.type === 'backend') {
this.modules.backend = module;
}

我该如何解决这个问题?

最佳答案

试试这个:
const reactI18nextModule = require("react-i18next");
代替
import { initReactI18next } from "react-i18next";
在这里阅读更多关于 require vs import 的 Jest 测试:

Jest mocking default exports - require vs import

希望能帮助到你 :)

关于typescript - 使用 Jest 测试 i18next 时如何修复 `TypeError: Cannot read property ' 类型'未定义`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55507684/

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