Cypress E2E 测试:如何进行表单验证

前言

表单是前端开发中非常常见的一个组件,而表单的正确性验证也是不可或缺的一步。虽然在开发中我们可以通过一些插件来帮我们校验表单的正确性,但是这些插件的测试覆盖面有限,我们很难保证它们能够覆盖到所有的场景。因此,在开发中,我们需要使用到 E2E 测试(End-to-End Testing)来进行表单的正确性验证。

Cypress 是一个完全基于 JavaScript 的前端自动化测试解决方案,它提供了一个简单易用的界面,使得我们的自动化测试开发工作变得更加简单和高效,这篇文章将介绍如何使用 Cypress E2E 测试来进行表单验证。

环境搭建

首先我们需要在本地安装 Cypress,安装方法如下:

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

安装完成后,我们需要添加一个 cypress.json 文件,用来配置 Cypress 的一些配置选项,如下所示:

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

上面的配置选项表示我们本地的测试服务器地址为 http://localhost:3000

编写测试用例

接下来,我们可以开始编写我们的测试用例了。对于表单验证,我们可以通过下面的测试用例来进行测试:

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

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

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

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

上面的测试用例包含了三个测试场景:

  1. 必填项不能为空;
  2. 密码长度不能小于 6 位;
  3. 登录成功。

我们可以看到,测试用例非常清晰明了,并且代码量也非常少。对于 E2E 测试而言,我们应该尽量避免写复杂的代码,应该用简洁明了的方式来编写测试用例并实现测试场景。

实现测试场景

下面我们来分别实现上面的测试场景。

必填项不能为空

这个测试场景非常简单,我们只需要找到对应的输入框并提交表单就行了。代码如下:

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

我们首先找到了 form 元素,然后调用了 submit 方法来提交表单。接着我们使用 should 方法来判断页面上出现了两个错误提示,并且分别为“请输入用户名”和“请输入密码”。

密码长度不能小于 6 位

这个测试场景中,我们需要输入用户名和密码,然后提交表单,判断错误提示是否正确。代码如下:

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

我们可以使用 type 方法来模拟用户输入用户名和密码,这样即可触发表单的校验功能。然后我们提交表单,并判断页面上出现了密码长度不能小于 6 位的错误提示。

登录成功

这个测试场景中,我们需要输入正确的用户名和密码,然后提交表单,判断是否跳转到了正确的页面。代码如下:

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

对于这个测试场景而言,我们只需要模拟用户输入正确的用户名和密码,然后提交表单,并判断是否跳转到了 home 页面即可。

运行测试用例

完成上述测试用例的编写后,我们可以使用 Cypress 自带的测试运行命令来运行这些测试用例。命令如下:

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

运行完毕后,我们可以在终端中看到测试的结果,如下所示:

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


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

我们可以看到,所有的测试用例都通过了。

总结

通过本篇文章的介绍,相信大家都掌握了如何使用 Cypress E2E 测试来进行表单验证。这是一个非常简单但是又非常实用的技术,能够大大提高我们的开发效率。在实际项目中,我们应该将 E2E 测试和其他测试方式结合起来,全方位覆盖并验证我们的代码。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/664821b3d3423812e46ad695