自动化测试,让你上班拥有一杯咖啡的时间 | Day 7 - 如何写断言

此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。

在测试脚本加上断言後,当程序码有 bug 时,一下就能被找出来。根据脚本的情境可以下几种断言,例如输入错误应该要出现 xxx 讯息,填完资料某按钮应该要出现。

写断言的方法有以下几种:

  1. Implicit Subjects: 使用 .should().and()
  2. Explicit Subjects: 使用 .expect()

例如:

.should() 在点击完按钮,class name 应该要有 active:

cy.get('button').click().should('have.class', 'active')

.and() 可以一次写多个断言:

cy.get('#header a')
  .should('have.class', 'active')
  .and('have.attr', 'href', '/users')

.expect()

cy.get('tbody tr:first').should(($tr) => {
  expect($tr).to.have.class('active')
  expect($tr).to.have.attr('href', '/users')
})

动手写程序

describe("铁人赛搜寻功能", function () {
    beforeEach(() => {
      cy.login({ userId: "account", password: "password" });
    })
  
    it("搜寻cypress後,应该要有文章", function () {
      cy.get('.menu__search-toggle').click({force: true});  //点选搜寻
      cy.get('.menu__search-input').type('cypress')  //搜寻cypress
      cy.get('#searchIronman').click({force: true,}); //选择铁人赛
      cy.get('.menu__dropform-btn').click({force: true}); //点选搜寻
      cy.get(".search-qa-list__title-link").contains("自动化测试,让你上班拥有一杯咖啡的时间 ").should("be.visible"); //要有cypress文章
      cy.get('li > a').contains("登出").click({force: true}); //点选登出
    })
})

https://ithelp.ithome.com.tw/upload/images/20210921/20140883sYB5KdcVGc.png

脚本执行错误时,会提供明确的讯息。
https://ithelp.ithome.com.tw/upload/images/20210921/201408835fcGQUKdTA.png

参考资料

https://docs.cypress.io/guides/references/assertions#Adding-New-Assertions


<<:  Day 8 [Python ML、特徵工程] 基准模型(Baseline Model)

>>:  Day 19-制作购物车系统之将资料汇入脚本

Day 15 - 动画效果 (一)

Transform 使用 变形基本上分为 Scale (缩放)、Rotate (旋转)、Skew (...

VSCode 套件推荐系列

身为一名工程师,将文字编辑器打造出具个人风格也是理所当然的。VSCode 是现在主流的文字编辑器,也...

[Day 12]我也好想成为时间管理大师(前端篇)

挑战目标: MockNative Camp 挑战还没过半就已经觉得自己债越积越深了... 今天要来挑...

DAY5-JAVA的阵列

今天来到阵列啦~~~((尖叫声 想当初第一次写程序时,遇到阵列我觉得好难r...... 阵列(arr...

Day-12 决策树(decision tree)

排序的速度 Quicksort,需要 heapsort,需要 merge sort,需要 inser...