reactjs - Mocha & Enzyme - 如何测试 React 组件没有子组件?

标签 reactjs mocha.js enzyme

为了进行测试,我使用 mochaenzyme 以及 chai 和 chai-enzyme 进行测试断言。

假设我在 React 中有以下演示组件:

import React from 'react'

import { Component, PropTypes } from 'react';

const LayerList = (props) => (
    <div>

    </div>
    )

LayerList.PropTypes = {
    layers: PropTypes.arrayOf(PropTypes.string).isRequired,
    layerActions: PropTypes.shape({
        addLayer: PropTypes.func,
        removeLayer: PropTypes.func,
        toggleDragLayer: PropTypes.func,
        moveLayerIndex: PropTypes.func,
        updateLayerColour: PropTypes.func,
        toggleLayerVisibility: PropTypes.func
    }).isRequired
}

export default LayerList

当 Layers 属性是长度为 0 的数组时,如何使用 Enzyme 和 Mocha 来测试该组件是否没有子组件?

这是我当前的尝试:

   it('should render only one div as first child element if layers prop is empty array', () => {
      const wrapper = shallow(<LayerList layers={[]}/>);    
      expect(wrapper.type()).to.equal('div');
       expect(wrapper.children()).length.to.equal();
    });

Mocha Test Result

最佳答案

.children() ShallowWrapper 应该这样做:

const wrapper = shallow(<LayerList layers={[]} />);
expect(wrapper.children()).to.have.length(0);

关于reactjs - Mocha & Enzyme - 如何测试 React 组件没有子组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41208033/

相关文章:

javascript - onChange仅在2次文本输入后触发

javascript - Mocha : Is there a scenario where a before hook would run after a test?

javascript - 如何使用 Jest/Enzyme 在功能性 React 组件中测试 lambda 函数?

reactjs - Jest/ enzyme : Error: Uncaught [TypeError: Cannot read property 'query' of undefined] on component wrapped in withRouter

javascript - 为什么我的导航器不工作?

javascript - 将数组中的位置分配为 react 键?

Firebase 函数 : storage cannot be stubbed when writing unit tests

javascript - 我正在尝试测试一个将另一个函数作为参数的函数

javascript - 在构造函数之外实例化的 ES6+ 实例属性

node.js - Mocha,如何在没有UnhandledPromiseRejectionWarning的情况下测试异步代码