我有一个名为AddEditVehicle
的组件,该组件在路线为/vehicle/:vehicleId/edit
时呈现。
我需要测试此组件的React生命周期。因此,我已经使用酶mount
通过以下方式在单元测试中渲染了我的组件。
beforeEach(async () => {
wrapper = await mount(
<BrowserRouter>
<Provider store={store}>
<AddEditVehicle match={{ params: { vehicleId } }} />
</Provider>
</BrowserRouter>
);
await wrapper.update();
});
此包装器无法传递必需的参数,从而导致以下规范失败。
it("expect `isEditMode` value to set", () => {
const componentState = wrapper.find("AddEditVehicle").instance().state;
expect(componentState.isEditMode).toEqual(true);
});
版本:
答案 0 :(得分:0)
我的方法的问题是我的组件是Route的一部分,但是我还是用withRouter
包装了这个组件,这是多余的。因此,在单元测试中,当我通过路线match
的细节时,它已被覆盖。因此,删除withRouter
使解决方案起作用。