gpt4 book ai didi

reactjs - 使用 React 测试库提交后测试重定向

转载 作者:行者123 更新时间:2023-12-04 02:43:11 24 4
gpt4 key购买 nike

我正在尝试测试登录组件。具体来说,它会在成功登录时重定向。手动测试时它工作正常。但在我的测试中,它从不进行重定向,因此找不到“注销”链接:

test('successfully logs the in the user', async () => {
const fakeUserResponse = {success: true, token: 'fake_user_token'}
jest.spyOn(window, 'fetch').mockImplementationOnce(() => {
return Promise.resolve({
json: () => Promise.resolve(fakeUserResponse),
})
})
const { getByText, getByLabelText, findByTestId } = render(<Router><Login /></Router>)

fireEvent.change(getByLabelText(/email/i), {target: {value: 'dan@example.com'}})
fireEvent.change(getByLabelText(/password/i), {target: {value: 'password1234'}})
fireEvent.click(getByText(/submit/i))

await waitForElement(() => getByText(/logout/i));
})

我正在使用 react-router 重定向版本 4,像这样:
{state.resolved ? <Redirect to="/" /> : null}

我会以错误的方式解决这个问题吗?

最佳答案

您可以模拟 Redirect组件的实现来显示一些包含路径的文本而不是重定向到它:

jest.mock('react-router-dom', () => {
return {
Redirect: jest.fn(({ to }) => `Redirected to ${to}`),
};
});
并期望您的组件以正确的路径显示文本:
expect(screen.getByText('Redirected to /')).toBeInTheDocument();

关于reactjs - 使用 React 测试库提交后测试重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58362930/

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