Cypress系列(7)- Cypress 编写和组织测试用例篇 之 Mocha的介绍

简介: Cypress系列(7)- Cypress 编写和组织测试用例篇 之 Mocha的介绍

如果想从头学起Cypress,可以看下面的系列文章哦

https://www.cnblogs.com/poloyy/category/1768839.html

 

前言


  • Cypress 底层依赖于很多优秀的开源测试框架,其中就有 Mocha
  • Mocha 是一个适用于 Node.js 和浏览器的测试框架,它使得异步测试变得简单

 

JS 语言带来的问题

JS 是单线程异步执行的,这使得测试变得复杂,因为无法像测试同步执行的代码那样,直接判断函数的返回值是否符合预期(因为给函数赋值时函数可能并未执行)

 

如何验证异步函数的正确性

  • 需要测试框架支持回调,Promise 或者其他方式来验证异步函数的正确性
  • Mocha 提供了出色的异步支持包括  Promise ,从而使得异步测试变得简单

 

Cypress 结合 Mocha


Cypress 继承并扩展了 Mocha 对异步的支持

 

Mocha 提供了什么

  • 多种接口来定义测试套件,Hooks,单个测试( Individual )
  • BDD(Behavior-Driven Development,行为驱动开发
  • TDD(Test-Driven Development,测试驱动开发
  • Exports、QUnit、Require

 

Cypress 采纳了 Mocha 的 BDD 语法

  • 该语法非常适合集成测试和单元测试
  • 在 Mocha 中,一个 BDD 风格的测试用例看起来是这样的

微信图片_20220508220405.png


常见 Mocha 模块

Cypress 将 Mocha 硬编码在自己的框架中,所以编写测试用例都是基于 Mocha 提供的如下基本功能模块:

  • describe()
  • context()
  • it()
  • before()
  • beforeEach()
  • afterEach()
  • after()
  • .only()
  • .skip()

 

对于一条可执行的测试用例来说,有以下两个必要的组成部分

describe()

  • 代表测试套件,里面可以设定 context() ,也可以包括多个测试用例 it() ,还能嵌套子测试套件
  • 一个测试套件可以不包括任何钩子函数(Hook),但必须包含至少一条测试用例 it()

 

it()

代表一条测试用例

 

其他模块

  • 除上述两个功能模块外,其他功能模块对于一条可执行的测试来说,都是可选的
  • 例如  context()describe() 的别名,其行为方式是一致的,直接用 context() 代替 describe() 也是可以的哦


image.png

可以看到,一共有三层的 context()

运行成功看看下面的结果

image.png

相关文章
|
20天前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
37 2
|
21天前
|
前端开发 JavaScript 数据可视化
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第26天】前端自动化测试在现代软件开发中至关重要,Jest和Cypress分别是单元测试和端到端测试的流行工具。本文通过解答一系列问题,介绍Jest与Cypress的实战应用与最佳实践,帮助开发者提高测试效率和代码质量。
31 2
|
5月前
|
JavaScript 前端开发 安全
在众多的测试工具中,Cypress以其强大的端到端测试能力和与TypeScript的完美结合,成为了前端开发者的首选
【6月更文挑战第11天】Cypress结合TypeScript,打造前端测试新体验。TypeScript增强代码可读性和稳定性,Cypress提供强大端到端测试,二者结合提升测试准确性和可靠性。通过类型定义、自定义命令和断言,优化测试代码;Cypress模拟真实用户操作、时间旅行功能及内置调试工具,确保应用功能性能。推荐前端开发者使用TypeScript+Cypress进行端到端测试。
73 2
|
6月前
|
测试技术 Python
cypress 和allure 集成生成测试报告
cypress 和allure 集成生成测试报告
149 1
cypress 和allure 集成生成测试报告
|
5月前
|
JavaScript 前端开发 安全
Cypress因其强大的端到端测试能力备受青睐,尤其与TypeScript结合,提升了测试的规范性和准确性。
【6月更文挑战第12天】前端开发日益复杂,测试成为保障代码质量和稳定性的关键。Cypress因其强大的端到端测试能力备受青睐,尤其与TypeScript结合,提升了测试的规范性和准确性。TypeScript使Cypress测试代码更易读、维护,通过类型定义、自定义命令和断言增强测试可靠性。Cypress能模拟真实用户操作,支持时间旅行和高效调试,全面测试前端应用功能。因此,TypeScript+Cypress是前端端到端测试的理想选择。
74 2
|
6月前
|
JavaScript 前端开发 安全
【TypeScript技术专栏】TypeScript与Cypress端到端测试
【4月更文挑战第30天】随着前端开发复杂度提升,测试成为关键环节,Cypress因其强大的端到端测试和与TypeScript的集成备受青睐。TypeScript增强了代码的可读性和维护性,确保测试准确性和可靠性。在Cypress中,TypeScript用于定义测试变量、自定义命令和断言,提高测试代码质量。Cypress的优势包括模拟真实用户操作、时间旅行功能和强大的调试工具,能有效提升测试效率和准确性。结合两者,前端开发者能实现高效、全面的端到端测试。
76 0
|
JavaScript 测试技术 Python
cypress自动化测试框架搭建
cypress自动化测试框架搭建
130 0
|
JavaScript 数据可视化 IDE
测试自动化工具比较:Selenium vs. Cypress
在软件开发过程中,测试自动化是一个关键的环节,它可以提高测试效率和质量,并帮助开发团队更快地交付高质量的软件。在测试自动化领域,Selenium和Cypress是两个备受关注的工具。本文将对它们进行比较,帮助开发者选择适合自己项目的测试自动化工具。
538 0
|
存储 Web App开发 JavaScript
Node.js躬行记(28)——Cypress自动化测试实践
Node.js躬行记(28)——Cypress自动化测试实践
|
前端开发 测试技术

热门文章

最新文章

下一篇
无影云桌面