所以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);
});
那么您对如何测试那段代码有任何想法吗?