我在项目中使用 Next-i18next 包进行本地化。
我成功地在我的 UI 上渲染了翻译后的内容。但是当我尝试使用酶(浅层测试)和 jest-dom 测试我的内容和文本时,测试失败了,因为翻译的内容无法正确呈现。
我尝试了各种解决方案:
- https://react.i18next.com/misc/testing
- 在 JEST 中模拟 i18n 的 useTranslation 不起作用
- 如何在使用 react-testing-library 和 jest 完成的单元测试中启用 react-i18n 翻译文件?
- 我如何开玩笑地模拟 react-i18next 和 i18n.js?
- 我试图用
<I18nextProvider i18n={i18n}> </I18nextProvider>
没有人为我工作。
我的测试文件:form.test.tsx
describe("form", () => {
it('should render the basic fields', () => {
render(<MyFormComponent/>)
}
expect(
screen.getByRole('textbox', { name: /First name/i })
).toBeInTheDocument();
})
it('should match snapshot', () => {
store = mockStore(initialState);
const wrapper = shallow(<MyFormComponent/>)
}
我从失败的测试中得到这种类型的错误:
TestingLibraryElementError:找不到带有以下文本的标签:名字
因为快照不是“名字”字符串,而是在翻译 json 中呈现“名字”键。
欢迎任何建议和解决方案。