如何在Cypress测试中使用自定义命令生成的dummyText变量?
方案1:复用现有别名实现(无需修改自定义命令)
你已在自定义命令中通过cy.wrap(words).as('dummyText')将生成文本注册为别名,测试用例中直接获取别名对应的值即可:
it('test', () => { // 生成虚拟文本 cy.generateDummyText(280); // 读取别名值填入输入框 cy.get('@dummyText').then(dummyText => { cy.get('myinput').type(dummyText) }) });
如果生成的
dummyText是单词数组格式,可将type(dummyText)改为type(dummyText.join(' '))得到空格分隔的连贯文本。
方案2:优化自定义命令,支持链式调用(更符合Cypress编码习惯)
你可以调整自定义命令的返回逻辑,省去单独声明别名的步骤,直接返回生成结果供后续链式调用:
调整后的自定义命令代码
Cypress.Commands.add('generateDummyText', (length: number, delay?: number) => { const wordLength = 5; const lorem = new LoremIpsum({ wordsPerSentence: { max: wordLength, min: wordLength, }, words: ['word1', 'word2', 'word3', 'word4', 'word5'], }); const words = lorem.generateWords(Math.ceil(length / wordLength)); // 直接返回生成结果支持链式调用 return cy.wrap(words); });
调整后的测试用例代码
it('test', () => { cy.generateDummyText(280) .then(dummyText => { cy.get('myinput').type(dummyText) }) });
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

