做网站最省钱,辽宁建设工程信息网作用,域名网,外贸网站推广技巧Mocha介绍
介绍
Cypress 底层依赖于很多优秀的开源测试框架#xff0c;其中就有 MochaMocha 是一个适用于 Node.js 和浏览器的测试框架#xff0c;它使得异步测试变得简单
JS 语言带来的问题
JS 是单线程异步执行的#xff0c;这使得测试变得复杂#xff0c;因为无法像…Mocha介绍
介绍
Cypress 底层依赖于很多优秀的开源测试框架其中就有 MochaMocha 是一个适用于 Node.js 和浏览器的测试框架它使得异步测试变得简单
JS 语言带来的问题
JS 是单线程异步执行的这使得测试变得复杂因为无法像测试同步执行的代码那样直接判断函数的返回值是否符合预期因为给函数赋值时函数可能并未执行
如何验证异步函数的正确性
需要测试框架支持回调Promise 或者其他方式来验证异步函数的正确性Mocha 提供了出色的异步支持包括 Promise 从而使得异步测试变得简单
Cypress 整合 Mocha
Cypress 继承并扩展了 Mocha 对异步的支持
Mocha 提供了什么
多种接口来定义测试套件Hooks单个测试 Individual BDDBehavior-Driven Development行为驱动开发TDDTest-Driven Development测试驱动开发Exports、QUnit、Require
Cypress 采纳了 Mocha 的 BDD 语法
该语法非常适合集成测试和单元测试在 Mocha 中一个 BDD 风格的测试用例看起来是这样的
describe(description,(){beforeEach((){cy.log(---- before method ---);})afterEach((){cy.log(---- after method ---);})context(test context,(){it(test1,(){cy.log(test1);})it(test2,(){cy.log(test2);})})
})常见 Mocha 模块
Cypress 将 Mocha 硬编码在自己的框架中所以编写测试用例都是基于 Mocha 提供的如下基本功能模块
describe()context()it()before()beforeEach()afterEach()after().only().skip()
对于一条可执行的测试用例来说有以下两个必要的组成部分
describe()
代表测试套件里面可以设定 context() 也可以包括多个测试用例 it() 还能嵌套子测试套件一个测试套件可以不包括任何钩子函数Hook但必须包含至少一条测试用例 it()
it()
代表一条测试用例
其他模块
除上述两个功能模块外其他功能模块对于一条可执行的测试来说都是可选的例如 context() 是 describe() 的别名其行为方式是一致的直接用 context() 代替 describe() 也是可以的哦