前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cypress系列(7)- Cypress 编写和组织测试用例篇 之 Mocha的介绍

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

作者头像
小菠萝测试笔记
发布2020-06-09 16:44:51
1.4K0
发布2020-06-09 16:44:51
举报
文章被收录于专栏:自动化、性能测试

如果想从头学起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 风格的测试用例看起来是这样的

常见 Mocha 模块

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

describe()

context()

it()

before()

beforeEach()

afterEach()

after()

.only()

.skip()

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

describe()
  • 代表测试套件,里面可以设定 ,也可以包括多个测试用例 it() ,还能嵌套子测试套件

context()

  • 一个测试套件可以不包括任何钩子函数(Hook),但必须包含至少一条测试用例

it()

it()

代表一条测试用例

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

context()

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

运行成功看看下面的结果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • JS 语言带来的问题
      • 如何验证异步函数的正确性
      • Cypress 结合 Mocha
        • Mocha 提供了什么
          • Cypress 采纳了 Mocha 的 BDD 语法
            • 常见 Mocha 模块
              • 对于一条可执行的测试用例来说,有以下两个必要的组成部分
                • describe()
                • it()
                • 其他模块
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档