cypress 支持TDD和BDD 2种写法。今天给大家举一些例子。
1.should最常用的就是 文本是否相等。可以比较属性的值,也可以看是否有该属性等。其实就是我们常用的equal, 里面写上它的属性,或者数值等。比如如下例子里 textbox 里的文本,应该等于”Sarah‘s offical account“。
cy.get('.textbox').should('have.text', 'Sarah‘s offical account')
2. and
当一个对象有多个校验点的时候,我们就可以用and。比如一个链接类的文本内容,除了比较文本,还可以看它是否是active的,以及它的属性等。 And 是在should 的基础上,一次性比较多个属性。避免写多行的的断言校验,比如验证link 的class 属性必须是active,同时有一个hred的属性,而且它的链接里必须要包含”Sarah“. 这个关键字。
cy.get('.link').should('have.class', 'active') .and('have.attr', 'href') .and('include', 'Sarah')
3.expect
其实是BDD的写法,就是期望值和实际值的比较。 这个就相当于 等号的的左边有右边。expect 的参数写实际值,然后写期望值。
expect(true).to.be.true.
4. assert和BDD对应的TDD的写法。 assert 就是我们常见的写断言的方式。 可以比较对象类型,比较具体文本是否相等,也可以比较具体的实例里的长度和内容。
var assert = require('chai').assert , sarah = 'bar' , beverages = { tea: [ 'chai', 'matcha', 'oolong' ] }; assert.typeOf(sarah, 'string'); // without optional message assert.typeOf(sarah, 'string', 'sarah is a string'); // with optional message assert.equal(sarah, 'bar', 'sarah equal `bar`'); assert.lengthOf(foo, 3, 'sarah`s value has a length of 3'); assert.lengthOf(beverages.tea, 3, 'beverages has 3 types of tea');
写断言的方法可以参考下chai www.chaijs.com/guide/style…
cypress 写断言相对来说比较简单。今天的内容也相对比较简单。
你学会了吗?
如果觉得阿萨的内容对你有帮助,欢迎围观点赞。