首页 文章

调试未定义的jest快照

提问于
浏览
5

我有一些反应代码,我试图测试,看起来像这样:

beforeEach(() => {
  wrapper = mount(
    <Provider store={store} >
      <MyPage params={params} location={location} />
    </Provider>
  );
});

test('renders My Page', () => {
  expect(wrapper).toMatchSnapshot();
});

我试图从react-router传递位置,这样我就可以访问我页面中的查询参数及其组件 . 我有一个适用的快照(例如显示DOM等),但是一旦我添加了这个新属性 wrapper 返回undefined .

我调试了这个,它似乎根本不再呈现 <MyPage ...> . 我已经尝试将 <MyPage ...> 调用移动到它's own variable, but that did not work either. Finally, I'也尝试将它从mount更改为浅(不确定是什么) . 我似乎找不到任何指示如何告诉它为什么不渲染\ mount的东西 .

是否有任何工具,技术或手段来检测挂载页面\组件无法呈现\ mount的原因?

EDIT 1

在一位同事的帮助下,我发现了我的问题 - 问题是我使用了 PropTypes.shape 而不是 PropTypes.shape() . 我可以在本地重现这个,但是没有一个在线沙箱工具似乎能够简化这一点 . 而且,就像它(使用无效的PropType)一样,它确实在开玩笑中无声地失败 . 那么,有没有一种方法可以使用标准工具和技术检测到这一点?

1 回答

  • 1

    解释我的评论,React本身会抛出无效的PropType错误,因此读取其控制台日志应该可以解决您的问题 . 正如您所说:如果您使用任何包装进行测试,日志可能会被抑制,因此从裸cli运行它们会有所帮助 .

相关问题