自动化测试,让你上班拥有一杯咖啡的时间 | Day 8 - 用 beforeEach 归纳重复行为

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

当测试脚本有重复的地方,除了可以写在 command.js 外,也可以依照不同使用状况将程序码写在 before, beforeEach, after, afterEach 中。

before:在测试前执行一次

before(() => {
})

beforeEach:在每个测试用例之前都会执行

beforeEach(() => {
})

after:在测试後执行一次

after(() => {
})

afterEach:在每个测试用例之後都会执行

afterEach(() => {
})

动手写程序

这个脚本有两个测试用例,在 beforeEach 中写在每个测试用例之前都要执行访问地址和登入,在 afterEach中写在每个测试用例之後都要登出。

describe("测试铁人赛登入", function () {
  beforeEach(()=>{
    cy.visit("https://ithelp.ithome.com.tw/");
    cy.login({ userId: "account", password: "password" });
  })

  afterEach(()=>{
    cy.get('li > a').contains("登出").click({force: true,}); //点选登出
  })

  it("输入正确帐密後应该要可以登入", function () {
    cy.get('.img-circle').click({force: true,}); //点选头像
  })

  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
  })

})

https://ithelp.ithome.com.tw/upload/images/20210921/201408830C711KuTqk.png

参考资料


<<:  Day22,Cert-Manager

>>:  Day 07 PIP & import 入门

Day26 - 轻前端 Component - jQuery UI Selectmenu

这个范例把上个范例的 jQuery UI Selectmenu 放到 vue component 内...

Day.28 「Promise 初体验~」 —— ES6 Promise

我们前面已经学习了回调函式(Callback Function)与构造函式(Constrcutor...

Day 18【Opensea.js】我的这把刀可是涂满了毒药的毒刃

【前言】 除了从 web3.js 来取得 ERC-721 的 Token's Ownership,...

Unity与Photon的新手相遇旅途 | Day27-Photon角色同步控制设定

今天内容为设定PlayerController.cs的程序码,让角色控制能够顺利同步,以及修正之前的...

DAY 7:Fan-Out Fan-In Pattern,看吧世界!这就是多人解决的力量!

什麽是 Fan-Out Fan-In Pattern? 将 input 由一个 producer 分...