开玩笑/酶/路由器:如何从路由器路径中获取组件实例?

时间:2019-09-11 22:06:03

标签: reactjs typescript react-router enzyme ts-jest

我有一个名为ItemsDetail的组件,它具有一个load(..)方法。 它从包装的<Route>组件中读取参数。现在,我想使用玩笑和酶以及以下功能隔离并测试ItemsDetail

function getMountedComponent(id: number): ItemsDetail {
    const path = "/items/" + id
    const wrapper = mount(<MemoryRouter initialEntries={['/items']}>
        <Route component={ItemsDetail} path={path} />
    </MemoryRouter>)
    const result = wrapper.find(Route).first().props().component
    expect(result).toBe(ItemsDetail)
    return result
}

这成功返回,但是当我调用result.loadItem(..)时,它指出loadItem is not a function导致我觉得这里没有实际的组件,而是一个函数。

所以我想我的问题是,当您需要指定路径参数时,如何从路由中获取实际的组件实例?

感谢阅读

0 个答案:

没有答案