Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何期望属性等于具有适当名称的函数_Reactjs_Mocha.js_Chai - Fatal编程技术网

Reactjs 如何期望属性等于具有适当名称的函数

Reactjs 如何期望属性等于具有适当名称的函数,reactjs,mocha.js,chai,Reactjs,Mocha.js,Chai,我正在使用浅层渲染测试一些react元素,我想确保它们具有正确的类型和子元素 但当我期望虚拟dom中的对象类型等于我正在使用的元素名时,它变成了一个函数 我如何期望函数 it('should console log this', function(){ tree = sd.shallowRender(React.createElement(Thing)); const vdom = tree.getRenderOutput() console.log('vdom.

我正在使用浅层渲染测试一些react元素,我想确保它们具有正确的类型和子元素

但当我期望虚拟dom中的对象类型等于我正在使用的元素名时,它变成了一个函数

我如何期望函数

it('should console log this', function(){


    tree = sd.shallowRender(React.createElement(Thing));

    const vdom = tree.getRenderOutput()

    console.log('vdom.props', vdom.type);
    expect(vdom.type).to.equal('Element');
});

AssertionError:预期[Function:Element]在上下文中等于'Element'。(/thing/thing/thing/tests.webpack.js:100318:33那么你想测试函数的名称吗?那就是
expect(vdom.type.name).to.equal('Element');

vdom.name是未定义的,试试
vdom.type.name
。当你
console.log(vdom)时会得到什么
?啊,我们开始了,vdom.type.name是一个go。至于当我键入console.log(vdom)时,它会说
TypeError:无法将符号值转换为字符串
。当我输入
JSON.stringify()时
上面说不能转换循环结构。有什么办法吗?我不太熟悉
Symbol
s和
skin deep
(您似乎正在使用的渲染器)。可能
console.log(vdom.toString())
可以工作,但我不太确定。。