大家好,我是阿萨。 上一次我们学习了Cypress 使用的是chai的断言语法。所以写Cypress的断言很简单。本节课我们学习下Cypress 和Mocha 共同的特性。
Mocha 和Cypress 有哪些方便写测试用例的关键字呢?
Cypress的测试接口借鉴了Mocha。Cypress采用了Mocha的BDD语法,所以完全适合单元和集成测试。
Cypress提供了describe(), context(), it()和specify();Describe()提供了一种使测试更容易阅读和组织的方法。
一. describe
describe()基本上是对测试用例进行分组。我们可以按照我们认为必要的 测试用例范围将测试嵌套在组中。description()有两个参数,第一个是测试组的名称,第二个是回调函数。同一个文件中可以有多个describe。同样,一个describe可以声明在另一个describe中。
二. context 与describe
context()只是describe()的别名,并且具有相同的行为。可以参考下面的例子
三. it
it()用于单个测试用例。it()有两个参数,一个字符串解释测试应该做什么,一个回调函数包含我们实际的测试:
四.it 与 specify
specify()是it()的别名,所以选择最适合关键字。参考如下例子。
describe('1st Describe to show 1st suite ', () => { describe('Describe Inside Describe to show nested suite', () => { it('first test inside', () => { cy.log('first test inside') assert.equal(true, true) }) }) it('1st test', () => { cy.log('1st test') assert.equal(true, true) }) specify('2nd test', () => { cy.log('2nd test') assert.equal(true, true) }) it('3rd test', () => { cy.log('3rd test') assert.equal(true, true) }) }) context('2nd suite', () => { it('first test', () => { cy.log('first test') assert.equal(true, true) }) it('2nd test', () => { cy.log('2nd test') assert.equal(true, true) }) it('3rd test', () => { cy.log('3rd test') assert.equal(true, true) }) })
() => 是我们声明回调的函数,回调函数是作为参数传递给另一个函数的函数。
上面例子的执行结果。