alo*_*onT 3 reactjs jestjs enzyme
我正在尝试测试反应组件中的各个行和单元格,该组件的“返回”如下所示:
return (
<div className="app-body">
<table className="grid">
<tbody>
{grid.map((row, rowIdx) => {
return <tr className="grid-row" key={rowIdx}>
{row.map((node, nodeIdx) => {
const { row, col } = node;
return <Node
key={nodeIdx}
row={row}
col={col}></Node>
})}
</tr>
})}
</tbody>
</table>
</div>
);
Run Code Online (Sandbox Code Playgroud)
如何测试笑话/酶中的每个细胞?我一直在尝试:
describe('test MyComponent', () => {
const wrapper = render(<MyComponent />);
const table = wrapper.find('table');
const row = render(<tr />)
const node = render(<Node />);
it('table grid', () => {
expect(table).toHaveLength(1);
expect(row).toHaveLength(1);
expect(node).toHaveLength(1);
});
});
Run Code Online (Sandbox Code Playgroud)
为什么它只期望一个节点?如何收集表中的所有节点?
它期望 1,因为只有 1 个table元素可供查找(对于expect(table))。对于其他两个 (row和node),您只是渲染单个元素(完全独立于您的MyComponent。如果您尝试计算 中的表、行和节点的数量MyComponent,请尝试如下操作:
describe('test MyComponent', () => {
const wrapper = mount(<MyComponent />);
const table = wrapper.find('table');
const row = table.find('tr')
const node = table.find(Node)
it('table grid', () => {
expect(table).toHaveLength(1);
expect(row).toHaveLength(whateverYouExpect);
expect(node).toHaveLength(whateverYouExpect);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26686 次 |
| 最近记录: |