我有一些我正在尝试测试的 react 代码,看起来像这样:
beforeEach(() => {
wrapper = mount(
<Provider store={store} >
<MyPage params={params} location={location} />
</Provider>
);
});
test('renders My Page', () => {
expect(wrapper).toMatchSnapshot();
});
我正在尝试从 react-router 向下传递位置,这样我就可以访问我的页面及其组件中的查询参数。我有一个可用的快照(例如显示 DOM 等),但只要我添加这个新属性 wrapper
返回未定义。
我已经调试过了,它似乎没有渲染 <MyPage ...>
完全没有了。我试过移动 <MyPage ...>
调用它自己的变量,但这也不起作用。最后,我还尝试将其从 mount 更改为 shallow(不确定它的作用)。我查看了文档,但似乎找不到任何具体说明我如何判断它为什么不呈现\挂载的内容。
是否有任何工具、技术或方法可以检测为什么挂载的页面\组件不呈现\挂载?
编辑 1
在一位同事的帮助下,我解决了我的问题 - 问题是我使用的是 PropTypes.shape
而不是 PropTypes.shape()
.我可以在本地重现这个,但是没有一个在线沙盒工具似乎可以让这个变得简单。此外,事实上(使用无效的 PropType)它确实在开 Jest 中默默地失败了。那么,有没有一种方法可以使用标准工具和技术检测到这一点?
最佳答案
换句话说,React 本身会抛出无效的 PropType 错误,因此阅读其控制台日志应该可以解决您的问题。正如您所指出的:如果您使用任何包装器进行测试,日志可能会被抑制,因此从裸 cli 运行它们会有所帮助。
关于javascript - 调试未定义的 Jest 快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45023925/