我正在测试类似的课程:
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, …}
答案 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
类的元素。