javascript - 使用 Enzyme 和 Jest 无法通过 'li' 中没有 'ul' 的测试

标签 javascript reactjs jestjs jsx enzyme

用于开始使用 Jest 和 Enzyme 的简单待办事项列表应用程序。

在 App.js 中,我正在渲染以下组件,其中 props.list 等于状态上的空数组。

export const Ul = ({list}) => {
    return (
        <ul className="list" >
          {list.map((item,i) => <li key={i}>{item}</li> )}
        </ul>
    ) 
}

在 Chrome 中查看元素按预期呈现。

<ul class="list"></ul> 

使用 wrapper.debug() 在控制台中查看 Enzyme 生成的 dom 组件呈现为:

    <Ul list={{...}}>
        <ul className="list" />
    </Ul>

我觉得很奇怪,也不知道为什么。

我的问题是我无法通过以下测试检查 UL 中是否没有“li” child :

it('ul initially has no children', () => {
    const wrapper = mount(<App />);
    expect(wrapper.find('.list').children()).to.have.lengthOf(0);
    // const ul = wrapper.find('.list');
    // expect(ul).toHaveLength(0); 
})

我不断收到“TypeError:无法读取未定义的属性‘have’”,这让我觉得它首先没有找到

    我只是错误地使用了 jest/enzyme api 吗?

    最佳答案

    方法不对。

      expect(wrapper.find('.list').children()).to.have.lengthOf(0); 
    

    应该真的:

      expect(wrapper.find('.list').children()).toHaveLength(0);
    

    关于javascript - 使用 Enzyme 和 Jest 无法通过 'li' 中没有 'ul' 的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108707/

    相关文章:

    swift - 在 react-native 上获取 ApplicationContext

    jestjs - 如何清除 Jest 缓存?

    javascript - Jest - 如何为每个测试重置对象状态?

    javascript - 如何在单击该图像的onclick事件时获取图像源路径

    javascript - 在 XMLHttpRequest 中使用相同的 session

    reactjs - 测试遍历 react 组件的方法的最佳方法是什么

    javascript - 导入 SASS 文件的测试组件时出现语法错误

    javascript - 了解 JavaScript 堆增长和 GC 模式

    javascript - 如何明确禁用按钮 Angular

    reactjs - 如何使输入类型=文件只接受图像 react