Javascript Jest测试HTML片段/对象HTMLParagraphElement

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

我要测试的函数返回一个HTML标记,例如:

这是一个段落

测试本身:

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