笑话浅渲染按类查找不包括

时间:2019-06-13 08:25:08

标签: reactjs jestjs enzyme

我正在测试类似的课程:

const wrapper = shallow(<Features {...props}/>);
expect(wrapper.find('.Feature__Item:not(.Feature__Showmore)').length).toBe(2);

但是,我收到这样的错误: 错误:酶::选择器不支持伪元素或伪类选择器。

如何解决此限制?

更新:有趣的观察,当我在调试控制台中编写以下代码时:wrapper.find('.Feature__Item').findWhere(a => a.hasClass('Feature__Showmore') === false).length

输出为:

0:Object {nodeType: "host", type: "li", props: Object, …}
1:Object {nodeType: "function", type: , props: Object, …}
2:Object {nodeType: "host", type: "li", props: Object, …}
3:Object {nodeType: "function", type: , props: Object, …}

2 个答案:

答案 0 :(得分:2)

我找到了另一种方法:

expect(wrapper.find('.Feature__Item').not('.Feature__Showmore').length).toBe(2);

答案 1 :(得分:1)

您可以尝试使用findWhere

expect(wrapper.find('.Feature__Item').findWhere(a => a.hasClass('Feature__Showmore') === false).length).toBe(2);

这将首先获取所有具有类Feature__Item的元素,然后从列表中排除那些没有Feature__Showmore类的元素。