首页 > 解决方案 > 为什么我的模拟商店不能在 Jest/Enzyme 上运行?

问题描述

根据 Jest 测试日志,我缺少第 67 行的覆盖范围,该覆盖范围出现在下面的代码块中

export default compose(
  connect(store => ({ // LINE 67
    accountGuid: store.global.accountGuid,
    shipmentsCSV: store.shipments.shipmentsCSV,
  })),
  translate(),
)(DownloadCSVItem);

这是我对该组件的测试:

import React from 'react';
import { mount } from 'enzyme';
import DownloadCSVItem from '../../DownloadCSVItem';
import createMockStore from '../../../../utils/createMockStore';

describe('DownloadCSVItem component', () => {
  let props;

  beforeEach(() => {
    props = {
      t: k => k,
      accountGuid: 'abcd-1234',
      shipmentsCSV: {
        itemsCount: 2,
        shipments: [
          {
            Courier: 'Hand Delivery',
            Note: 'Testing the data transfer request system. ',
          },
          {
            Courier: null,
            Note: null,
          },
        ],
      },
    };
  });

  it('renders DownloadCSVItem and check if class exists', () => {
    const wrapper = mount(
      <DownloadCSVItem.WrappedComponent {...props}
        store={createMockStore({
          global: { accountGuid: props.accountGuid },
          shipments: {
            totalCount: props.shipmentsCSV.itemsCount,
            shipments: props.shipmentsCSV.shipments,
          },
        })}
      />,
    );
    expect(wrapper.find('button')).toHaveLength(1);
  });

});

我编写了那个测试并运行了命令来测试它,它仍然说第 67 行的覆盖范围丢失了。

在这种情况下我该怎么办?

标签: javascriptreactjsunit-testingecmascript-6jestjs

解决方案


推荐阅读