Jas*_*Jas 1 javascript e2e-testing cypress
我有以下函数,它在父函数中。
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)
Run Code Online (Sandbox Code Playgroud)
对于不同情况的其他测试文件,此随机字符串生成器有很多用途。无需每次都复制和粘贴此函数,我想重用此函数并在另一个测试文件中调用它。
我应该如何设置?
我试图在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
})
Run Code Online (Sandbox Code Playgroud)
但这在我在测试文件中调用它时不起作用:
cy.get('#name').click()
cy.get('#name').random_string_gen()
Run Code Online (Sandbox Code Playgroud)
我想在一个文件内重用该函数,然后在另一个文件内调用它,但是我不确定如何设置必要的命令/索引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
});
Run Code Online (Sandbox Code Playgroud)
然后,可以在测试规范文件上调用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |