如何在 Jest 中测试 JSX?

阅读时长 4 分钟读完

Jest 是一个流行的 JavaScript 测试框架。对于 React 开发人员来说,Jest 是测试组件和应用的首选工具之一。本文将讨论如何在 Jest 中测试 JSX

准备工作

在 Jest 中测试 JSX 需要为项目安装 @babel/preset-react 。该插件将 JSX 转换为 JavaScript,从而使 Jest 能够正确解析和测试 JSX。

以下是如何在项目中安装 @babel/preset-react 的命令:

此外,您需要确保项目中存在 reactreact-dom 依赖项。如果还没有,请使用以下命令进行安装:

创建测试文件

在您的项目中创建一个名为 App.test.js 的文件。该文件将包含测试 App 组件的代码,并确保它始终渲染正确的 JSX。

App.test.js 文件中添加以下代码:

-- -------------------- ---- -------
------ ----- ---- --------
------ - ------ - ---- -------------------------
------ --- ---- --------

------------- --- ------- ------ -- -- -
  ----- - --------- - - ----------- ----
  ----- ----------- - ----------------- ----------
  ----------------------------------------
---

在这段代码中,您导入了必要的依赖项和 App 组件。您还创建了一个名为 test 的 Jest 配置块,它包含在应用程序渲染后检索文本和断言该文本在文档中存在的代码。

现在,运行以下命令以运行测试:

Jest 应该运行并显示测试结果。如果一切顺利,测试应该通过!

渲染并测试组件

您可以通过使用 Jest 的 render 函数来渲染 React 组件。render 函数可以渲染组件,并返回一个包含组件中的 DOM 元素的对象。

以下是如何使用 render 函数渲染 App 组件的代码:

在这段代码中,您将 App 组件传递给 render 函数,并解构返回的对象以获取它生成的 DOM 中的元素。

您可以使用类似以下方式的另一个 Jest 断言来确保 render 函数工作正常:

这个断言检验是否有一个元素中包含了 “Hello, World!” 的文本,如果这个文本不在文档中,则测试不通过。

在组件中查找元素

您可以使用 Jest 提供的几个查询函数来查找组件中的元素。以下是使用 Jest getBy* 查询函数的示例:

在这些代码中,您使用了 getByTextgetByPlaceholderTextgetByRole 三个查询函数。这些函数通过文本、占位符属性或元素角色来查找 DOM 中的元素。

如果您的组件包含复杂结构,则可以使用通过 querySelector 查找元素的自定义查询函数来更直接地查找元素。

总结

在 Jest 中测试 JSX 是一项挑战性任务,但我们已经看到了它是如何完成的。使用 @babel/preset-react ,您可以让 Jest 识别和解析 JSX 代码。并且您可以通过使用 render 函数和各种查询函数来测试您的组件。通过坚持测试,您可以确保您的应用程序提供了最优的用户体验。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645f555f968c7c53b015e16a

纠错
反馈