我的react组件使用i18next的翻译,我正在尝试使用JEST为其创建测试。但是,什么都没有得到翻译,我已经尝试过模仿下面的useTranslation函数:
const useMock : any = [(k: any) => k, {}];
useMock.t = (k: any) => k;
useMock.i18n = {};
jest.mock('react-i18next', () => ({
// this mock makes sure any components using the translate HoC receive the t function as a prop
/* tslint:disable-next-line:variable-name */
useTranslation: () => useMock,
}));
我在做什么错了?
答案 0 :(得分:0)
jest.mock('react-i18next', () => {
return {
useTranslation: () => ({
t: key => key
})
}
})
答案 1 :(得分:0)
创建文件 __mocks__/react-i18next.js
(位于同一父文件夹中__mocks__
旁边的文件夹node_modules
),包含:
module.exports = {
useTranslation: () => ({
t: key => key,
}),
}
在测试脚本中,通常会导入useTranslation
,但要定义要使用的模拟。
import {useTranslation} from 'react-i18next'
/* Other imports and code */
jest.mock('react-i18next')
/* Your test code using useTranslation */