我正在使用redux并反应路由器。
我想测试路由参数是否显示在页面上。
test('route param is displayed', async () => {
const { queryByText } = customRender(
<EditCard />,
{
route: '/card/1554990887217',
}
);
const cardId = queryByText(/1554990887217/);
await waitForElement(() => cardId);
})
我的自定义渲染像这样包装路由器和redux:
export const customRender = (
ui,
{
route = '/',
history = createMemoryHistory({ initialEntries: [route] }),
initialState,
store = createStore(rootReducer, initialState),
...options
} = {}
) => ({
...rtl(
<Provider store={store}>
<Router history={history}>{ui}</Router>
</Provider>,
options
),
history,
});
路由参数只是未在测试中显示。超时会出错。
但是它可以在页面上运行,因为如果我启动该应用并手动对其进行测试,那么一切都会按预期运行。
答案 0 :(得分:0)
想通了。
我没有意识到您也需要通过这条路线。
open()
如果您不使用redux或不想编写自定义渲染,则可以在https://react-testing-examples.com/jest-rtl/react-router/
处进行简单的操作