gpt4 book ai didi

jestjs - 使用 useTranslation 进行 next-i18next Jest 测试

转载 作者:行者123 更新时间:2023-12-04 11:56:46 26 4
gpt4 key购买 nike

测试库...总是很有趣。我正在使用 next-i18next在我的 NextJS 项目中。我们正在使用 useTranslation与命名空间 Hook 。
当我运行我的测试有一个警告:

console.warnreact-i18next:: You will need to pass in an i18next instance by using initReactI18next

> 33 |   const { t } = useTranslation(['common', 'account']);
| ^

我已经尝试过 react-i18next test examples 中的设置没有成功。我试过 this suggestion too .
以及只是试图模拟 useTranslation没有成功。
是否有更直接的解决方案来避免此警告?测试通过 FWIW...
test('feature displays error', async () => {
const { findByTestId, findByRole } = render(
<I18nextProvider i18n={i18n}>
<InviteCollectEmails onSubmit={jest.fn()} />
</I18nextProvider>,
{
query: {
orgId: 666,
},
}
);

const submitBtn = await findByRole('button', {
name: 'account:organization.invite.copyLink',
});

fireEvent.click(submitBtn);

await findByTestId('loader');

const alert = await findByRole('alert');
within(alert).getByText('failed attempt');
});
最后,有没有办法让翻译的纯文本成为结果,而不是命名空间: account:account:organization.invite.copyLink ?

最佳答案

在描述块之前或在 beforeEach() 中使用以下代码段来模拟需要的。

jest.mock("react-i18next", () => ({
useTranslation: () => ({ t: key => key }),
}));
希望这可以帮助。和平。

关于jestjs - 使用 useTranslation 进行 next-i18next Jest 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66973857/

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