Day 25: 那我们来用cypress call api吧

在前面的单元测试部分与前一天的Cypress我们都讲到使用假资料来,我们不一定随时都是使用mock一个假资料(fake data)来当作测试,可能会在某个beta阶段时使用beta API来当作真正的模拟使用者在使用的情境.举个例来说,我们需要在做登入验证的时候需要authToken,但是在做测试的时候我们可以先用cy.request取得相关token或者是在做别的测试时的测试资料的取得.

cy.request('https://jsonplaceholder.typicode.com/todos/1').as('apiCall');

这段会真的call api出去的动作,这边打的虽然是万用API,但你可以想像成取得token的动作?

cy.get('@apiCall').should(res => {
	expect().to.equal() //验证回传的资料
		or 
	可能res接到的是token
	window.localstorage.setItem('token', res.token);
	之类的设计
});

那写到这边,大家可以想一下那我们如果很多只测试都要先登入怎办,这时候我们可以写成commands

Cypress.commands.add('commands name ex: getToken', (args) => {
	然後这边我们可以把上面的一些request code拉下来来达到一个共用模组的效果
});

接下来我们只要在各个测试档案

beforeEach(() => {
	cy.getToken()
});

他就会在各个测试之前都会先去後端取得token,然後执行你接下来的动作,commands这边,就明天再写.

参考:

  1. https://docs.cypress.io/api/commands/request

<<:  [第二十六天]从0开始的UnityAR手机游戏开发-输出64位元的APP

>>:  Day24【Web】网路传输协定:TCP 与 UDP

【Day29 #1】企业数位治理议题2:企业经营流程之数位化整合

#odoo #开源系统 #数位赋能 #E化自主 前言 昨天我们利用个案协助大家认识对於一个正在成长中...

DAY 08 Nesting

嵌套 Nesting 当你在编辑一个 html 档案时,巢状结构的架构可以让你快速了解,每个区块里面...

Day27:27 - 优化 - 後端 - recaptcha 验证机制

မင်္ဂလာပါ,我是Charlie! 在Day26当中我们完成了修改密码的部分,而今天我们将加强...

[量化投资] 运用python量化投资平台backtrader 实现ETF动量资产配置回测

策略发想: 运用 两档两档台湾ETF 006208与00895 来进行投资组合建构 该策略使用 商品...

.Net Core Web Api_笔记12_自定义属性路由

在前几篇文章中我们都是用 微软内建的RouteAttribute跟HttpMethodAttribu...