gpt4 book ai didi

javascript - 如何重用现有 Cypress 测试中的函数,并在新测试中调用它?

转载 作者:行者123 更新时间:2023-11-30 08:20:23 25 4
gpt4 key购买 nike

我有以下函数,它在父函数中。

// A function that creates a random string and will later pass this to a variable
function generate_random_string(string_length) {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
}

var random_string = generate_random_string(6)

这个随机字符串生成器在不同场景的其他测试文件中有很多用途。我不想每次都复制和粘贴这个函数,而是想重用这个函数并在另一个测试文件中调用它。

我该如何设置?

我尝试在 commands.js 文件中创建自定义命令,如下所示:

Cypress.Commands.add("random_string_gen", 
function generate_random_string(string_length) {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
})

但是当我在我的测试文件中调用它时,这不起作用:

cy.get('#name').click()
cy.get('#name').random_string_gen()

我想在一个文件中重用该函数,并在另一个文件中调用它,但我不确定如何设置必要的命令/索引 JS 文件,所以一个让我入门的模板真的很有帮助!

最佳答案

只需在您的 cypress/support/commands.js 上创建自定义命令,如下所示:

Cypress.Commands.add('generate_random_string', (string_length) => { 
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
});

然后,在您的测试规范文件中,您可以调用 cy.generate_random_string(5)

例如,这将向控制台打印一个随机生成的长度为 5 的字符串。

/// <reference types="Cypress" />

context('stackoverflow', () => {
it('stackoverflow', () => {
cy.generate_random_string(5).then((result) => {
console.log(result);
});
})
})

// Output: eauyy

关于javascript - 如何重用现有 Cypress 测试中的函数,并在新测试中调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54559089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com