Cypress API测试-使用自定义命令返回值以避免重复代码



首先。我有意重新学习JS/Cypress,并有意重新从基础开始,所以提前道歉。

我目前正在使用Cypress进行REST API测试。我正在从现有的Ruby/Selenium框架迁移测试,我想使用类似于编写Ruby函数的东西来清理我的代码,因为我目前正在复制代码。

例如:我有一个代码块,它生成一个日期,过去365天(在这种情况下,使用ISOString是有原因的(

var date = new Date();
date.setDate(date.getDate() - 365)
var minDate = date.toISOString().split('T')[0]

我想做一些类似的事情

Cypress.Command.add('dateGen', () => {
var date = new Date();
date.setDate(date.getDate() - 365)
var minDate = date.toISOString().split('T')[0]
})

并调用它。在这种情况下,我想使用类似的方法将它调用到我的测试中(请原谅语法不正确,我只是作为一个类似(Ruby/JS(的示例来做这件事(:var date = cy.dateGen

然而,在任何js/cypric友好的组合中运行它都会失败,因为命令不返回值。

我已经设置为在index.js等中使用命令,所以这个位不会给我带来任何问题。我已经在对不返回值的东西使用命令了,所以我知道我做得很正确。

我使用以下方法对其进行了排序:

Cypress.Commands.add('dateGenerator', (days) => {
var newDate = new Date();
newDate.setDate(newDate.getDate() - days)
var date = newDate.toISOString().split('T')[0]
return date
})

然后通过调用

cy.dateGenerator(noOfDays)
.then((date) => {
var minDate = date
}

我缺少的是return date和我在测试代码中过早地关闭了块。

相关内容

  • 没有找到相关文章

最新更新