Javascript Jest测试HTML片段/对象HTMLParagraphElement
我要测试的函数返回一个HTML标记,例如:Javascript Jest测试HTML片段/对象HTMLParagraphElement,javascript,node.js,jestjs,babeljs,babel-jest,Javascript,Node.js,Jestjs,Babeljs,Babel Jest,我要测试的函数返回一个HTML标记,例如:这是一个段落 测试本身: expect(getElement('paragraph', 'footer')).toBe(<p class="paragraph">This is a paragraph</p>); expect(getElement(“段落”、“页脚”))。toBe(这是一个段落); 这将返回以下错误: 当前未启用对实验语法“jsx”的支持(35:56):将@babel/preset rea
这是一个段落
测试本身:
expect(getElement('paragraph', 'footer')).toBe(<p class="paragraph">This is a paragraph</p>);
expect(getElement(“段落”、“页脚”))。toBe(这是一个段落);
这将返回以下错误:
当前未启用对实验语法“jsx”的支持(35:56):将@babel/preset react()添加到babel配置的“presets”部分以启用转换。
如果您想保持原样,请将@babel/plugin语法jsx()添加到“plugins”部分以启用解析
问题是,它不是JSX。它只是带有香草JS/Node的HTML。如果我将其转换为字符串,我将收到“object HTMLParagraphElement”
我可以测试innerHTML,但我很好奇是否有办法测试完整的HTML元素。首先,如果不是文本,即字符串、布尔值、数字等,则需要运行expect。。。toEqual()不可能。其次,确保导入React,否则以<开头的任何内容都不会起作用。第三,如果你没有巴别塔的反应,那么你也需要这样做。或者,您可以导入util,并运行util.inspect并比较字符串。传递给toBe
的参数是这是一个段落,这是JSX!如果它应该是一个HTML字符串,那么您缺少引号。如果它应该是一个DOM节点,那么你离它还有很长的路要走。@SteveTomlin谢谢你详细的回答。现在更有意义了。我不确定React部分,因为我没有在这个项目中使用它。它只是简单的HTML。所以我在寻找一个测试常规HTML的解决方案。但正如昆汀已经说过的,最终是JSX。因此,我想我将只测试内部HTML而不测试HTML元素/标记。您也可以使用
outerHTML
:首先,如果它不是文本,即字符串、布尔值、数字等,那么您需要运行expect。。。toEqual()不可能。其次,确保导入React,否则以<开头的任何内容都不会起作用。第三,如果你没有巴别塔的反应,那么你也需要这样做。或者,您可以导入util,并运行util.inspect并比较字符串。传递给toBe
的参数是这是一个段落,这是JSX!如果它应该是一个HTML字符串,那么您缺少引号。如果它应该是一个DOM节点,那么你离它还有很长的路要走。@SteveTomlin谢谢你详细的回答。现在更有意义了。我不确定React部分,因为我没有在这个项目中使用它。它只是简单的HTML。所以我在寻找一个测试常规HTML的解决方案。但正如昆汀已经说过的,最终是JSX。因此,我想我将只测试内部HTML,而不测试HTML元素/标记。您也可以使用
outerHTML
: