gpt4 book ai didi

jestjs - 路由器快照不起作用

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

这个和这个不一样enzyme-to-snapshot-render-object-as-json因为

这里我想生成对象的带有JSON定义的快照
另一个我想为组件生成的 only for HTML 生成快照。


快照测试总是失败,因为 history 中的 key 属性每次都会更改。

// ComponentContainer.jsx
class ComponentContainer extends Component {
render() { ... }
}
export { ComponentContainer };
export default withRouter(ComponentContainer);

还有测试..

// ComponentContainer.test.jsx
import { ComponentContainer } from './ComponentContainer';

const minProps = {
history: {
push: jest.fn(),
},
};

const wrapped = mount(
<Router history={minProps.history}>
<ComponentContainer.wrappedComponent {...mergedProps} {...mergedStores} />
</Router>,
);

expect(toJson(wrapper)).toMatchSnapshot();

生成这个快照..

// ComponentContainer.test.jsx.snap
<MemoryRouter
history={
Object {
"push": [Function],
}
}
>
<Router
history={
Object {
"action": "POP",
"block": [Function],
"canGo": [Function],
"createHref": [Function],
"entries": Array [
Object {
"hash": "",
"key": "mmldr1", // THIS IS GENERATED ON EACH TEST
"pathname": "/",
"search": "",
"state": undefined,
},
],

尝试

我尝试使用内存历史......

// ComponentContainer.test.jsx
import createHistory from 'history/createMemoryHistory';

const history = createHistory({
initialEntries: [`/myapp/123`],
});

<Router history={history}>
<ComponentContainer.wrappedComponent />
</Router>

但我遇到了同样的问题。

最佳答案

您需要使用 enzyme.find(ComponentContainer) 从组件本身而不是路由器创建快照。

关于jestjs - 路由器快照不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44490100/

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