使用Jest进行测试,如何期望结果是一组组件

时间:2019-06-12 08:53:04

标签: reactjs unit-testing testing jestjs

我的测试代码如下:


it('makes sure the list items are populated', () => {
    var view = ReactTestUtils.renderIntoDocument(<Sidebar />)
    var result = view.populateLi();
    expect(result).toBe(Array);
});

结果应该是称为ListItem的组件数组。

Expected: [Function Array]
Received: [<ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />]

如何编写与Received场景匹配的测试。

1 个答案:

答案 0 :(得分:0)

使用scryRenderedComponentsWithType

     var result = TestUtils.scryRenderedComponentsWithType(view, ListItem);

由于这将返回Array中的ListItem,因此您所需要做的就是检查数组的长度是否符合您的期望:

  expect(result).length.to.equal(12); // or however many you expect

如果您想检查自己的populateLi函数是否正常工作,则应该进行单独的测试:

var result = TestUtils.scryRenderedComponentsWithType(view, ListItem);     
var populateResult = view.populateLi();

expect(result).to.deep.equal(populateResult)