微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用快照子组件进行测试

如何解决如何使用快照子组件进行测试

我正在尝试测试我的反应组件(使用快照测试)。问题是如何渲染子组件?我正在使用Apollo和next.js,页面可以正确渲染,但项目不能。 我的测试是这样的:

describe('tab',() => {
  const store = createStore(errorUI);
    it('renders correctly',async () => {
      let wrapper;
      const mocks = [{
        request: {
          query: Query,},result: { data: { Mocked } }
      }];
      await act(async () => {
        wrapper = TestRenderer.create(
          <MockedProvider {...mocks} addTypename={false}>
            <Provider store={store}>
              <I18nextProvider i18n={i18n}>
                <VippedPage { ...Mocked }/>
              </I18nextProvider>
            </Provider>
          </MockedProvider>
        )
    });
    const tree = wrapper.toJSON();
    expect(tree).toMatchSnapshot();  
  });
});  

我的组件是这样的:

const Componeny =  () => {
  const { loading,data,error,fetchMore } = useQuery(query);
  const items = data?.items || [];
  const itemsList = items && items.map(item => (
    <Item
      key={item.id}
      carousel={true}
      itemId={itemId}
      setCarousel={setCarousel}
      {...item}
    />
  ));
  return (
    <EndlessItemsHoc>
      {itemsList}
    </EndlessVipItems>
  )
}

快照就是这样:

<section className="section section-block section-white">
  <div className="section-list"/>
</section>

我们的页面甚至没有那么复杂,但是主要的问题在于带有孩子的组件。

感谢您的帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?