如何在赛普拉斯中使用 fakerjs

Posted

技术标签:

【中文标题】如何在赛普拉斯中使用 fakerjs【英文标题】:How to use fakerjs in Cypress 【发布时间】:2019-10-13 02:10:31 【问题描述】:

我试图在我的 cypress 测试中使用 fakerjs 来为我的表单随机生成假数据。我试过在support/index.js 中导出它,但没有成功。

是否有任何标准方法可以将 fakerjs 添加到所有 cypress 规范而不是将其添加到每个规范文件中?

【问题讨论】:

【参考方案1】:

首先,在每个规范中都导入它有什么问题?

话虽如此,你可以这样做:

cypress/support/index.js:

cy.faker = require('faker');

您的规格:

it(`test`, () => 
    const words = cy.faker.lorem.words();
);

【讨论】:

这不起作用,当我们调用我们 calll cy.faker 时,它正在失去对现有选择器的引用,我们可以将它作为实用程序,就像我们有 lodash(Cypress._)、moment.(Cypress.时刻).etc 不确定“它正在失去对现有选择器的引用”是什么意思。 当我尝试使用像 cy.get('#myinput').type(cy.faker.firstName()) 这样的伪造者时,它给了我一个错误,即 cy 没有将有效输入引用到类型 这与cy.faker 无关,而是与cy.type。解决cy.type 错误(可能是因为cy.get() 没有找到可操作的元素),它会起作用。 如果我有简单的文本 cy.get('#myinput').type('abc'),cy.type() 正在工作,但如果我使用 cy.faker,它会因上述错误而失败.firstName(),无论如何,我可以在没有 cy 的情况下实现这一点。前缀,类似于 const faker = require('faker') 和我的实际语句 cy.get('#myinput').type(faker.firstName())。谢谢你的线索。【参考方案2】:
For reference javascript :- 
Https://zetcode.com/javascript/fakerjs/

You can use these in cypress :-
npm i faker

const faker = require("faker"); 

let username = faker.name.findName()
let email = faker.internet.email()
let password = faker.internet.password()

Use all these in single specs file.

【讨论】:

看看下面的链接写一个好答案:***.com/help/how-to-answer【参考方案3】:

我试过了,发现很简单。步骤如下,

1- 需要伪造者

const faker = require("faker");

2- 你想要这样的用户

   Variable declaration -> var firstName = faker.Name.findName();
   Use in locator -> cy.get("#firstName").type(firstName);

希望对你有帮助:)

【讨论】:

以上是关于如何在赛普拉斯中使用 fakerjs的主要内容,如果未能解决你的问题,请参考以下文章

如何期望日期包含赛普拉斯中的另一个日期?

如何在赛普拉斯中使用灯具列表断言列表

赛普拉斯:如何使用键盘事件

如何在赛普拉斯中选择一个数组?

赛普拉斯 - 如何按顺序运行测试文件

如何查看赛普拉斯测试使用的属性值?