如何测试在Jest / Enzyme上返回元素的函数?

时间:2019-01-17 18:50:00

标签: javascript unit-testing ecmascript-6 jestjs enzyme

所以Jest日志说第64行需要覆盖。

我的代码中有这个

(它是一个数据表组件,您可以在其中扩展其行以查看更多内容)。

{row.isExpanded && (
    <TableExpandedRow>
      <TableCell colSpan={headers.length + 1} key={row.id}>
        <div className="wrapper wrapper-items-table">
          <div className="table">
            <TableItemsHeader />
            {tableRows.map(
              items =>
                isEqual(items.id.toString(), row.id) && ( // LINE 64
                  <TableExpandedRowWrapper
                    key={items}
                    rowClassProp="row"
                    shipmentItem={items}
                  />
                ),
            )}
          </div>
        </div>
      </TableCell>
    </TableExpandedRow>
  )}

您在上面看到的isEqual()方法来自lodash。

我在测试中得到了这个

beforeEach(() => {
    props = {
      t: k => k,
      tableRows: [
        {
          id: '123',
          shipmentId: '- -',
        },
      ],
      headers: [
        {
          key: 'shipmentId',
          header: 'Shipment ID',
        },
      ],
    };
  });

  it('renders ShipmentsTable component', () => {
    const wrapper = mount(<TableComp.WrappedComponent {...props} />);


    // I know this is not doing anything but
    // this is the part I need to test
    const row = { id: '123' };
    const rows = props.tableRows.map(
      items =>
        isEqual(items.id.toString(), row.id) && (
          <TableExpandedRowWrapper
            key={items}
            rowClassProp="row"
            shipmentItem={items}
          />
        ),
    );

    expect(wrapper.find(DataTable)).toHaveLength(1);
  });

那么您对如何测试那段代码有任何想法吗?

0 个答案:

没有答案