Reactjs 如何期望属性等于具有适当名称的函数
我正在使用浅层渲染测试一些react元素,我想确保它们具有正确的类型和子元素 但当我期望虚拟dom中的对象类型等于我正在使用的元素名时,它变成了一个函数 我如何期望函数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.
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())
可以工作,但我不太确定。。