javascript - 调试未定义的 Jest 快照

标签 javascript reactjs jestjs

我有一些我正在尝试测试的 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/

相关文章:

javascript - ReactJs/Redux 不变违规 : Could not find "store" in either the context or props of "Connect(LoginContainer)"

javascript - 使用 Jest CLI 时如何让 Promises 工作?

javascript - 无法正确实现 Primefaces 图表

javascript - 想要检查用户是否已经存在 MongoDB

javascript - ReactJS-在 axios 方法中将 JWT token 作为授权传递给 http 请求

javascript - 将 json 页面连接到 React-native 中的 flex 行

javascript - 尝试更改子 div 属性时出错

javascript - AJAX URL 字符串在变量之间添加空格

javascript - 如何在页面上打印对象?

javascript - Jest 报告测试通过,即使 expect 断言失败