我有以下函数,该函数位于父函数内部。
function generate_random_string(string_length) { // A function that creates a random string and will later pass this to a variable
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文件,因此让我入门的模板真的很有帮助!
答案 0 :(得分:3)
只需在您的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