首页 > 解决方案 > 用于查找的嵌套包装器 如何查找 HTML 元素是否存在?

问题描述

我目前正在编写一个单元测试,我正在尝试使用 wrapper.find 来查找子 HTML 元素

我尝试使用 wrapper.find(element).find(element).exists()).toBe(true); 但是结果总是返回 false。当我尝试分别查找每个元素时,测试返回 true。

我正在测试的内容:

if(brand === Nike) {
    <div className="test"> 
       <p>Hello world</p>
    </div>
} else {
   <div className="test"></div>
}

我目前的测试(测试品牌是耐克): expect(wrapper.find('.test').find('p').exists()).toBe(true);

我之前已经定义了包装器(如前所述,单独测试工作,当我尝试嵌套发现它没有)

我希望输出返回真,因为品牌等于耐克。但它总是返回假。

标签: htmlreactjsjestjsenzyme

解决方案


在我看来,一个更简单的解决方案是:

expect(wrapper.find('.test p')).not.toBeUndefined();

嵌套查找不是必需的。

还有,品牌检查,是耐克的一个元素吗?如果它是一个字符串,你应该检查它作为一个字符串:

if (brand === 'Nike') { ...

推荐阅读