javascript - 将 Faker 与 Cypress 结合使用

标签 javascript cypress faker

我从 Cypress 开始,我想添加 Faker 来生成随机值。但我得到以下结果。你能帮我解决这个问题吗?

login_page.js

const faker = require('faker');

before(() => {
    let userData = {
        randomName: cy.faker.name.findName(),
        randomEmail: cy.faker.internet.email(),
        randomPassword: cy.faker.random.number()
    }
}

describe('Create new user', function () {
    it('Create new user via API', function () {
        cy.request('POST', '/cadastrarUsuario', {
            nome: userData.randomName,
            email: userData.randomEmail,
            senha: userData.randomPassword
        })
            .then((resp) => {
                expect(resp.status).to.eq(200)
            })
    })
})

describe('Login with user just created', function () {
    it('Login with user just created via API', function () {
        cy.request('POST', '/logar', {
            email: userData.randomEmail,
            senha: userData.randomPassword
        })
            .then((resp) => {
                expect(resp.status).to.eq(200)
            })
    })
})

index.js
cy.faker = require('faker');

执行结果
TypeError: Cannot read property 'name' of undefined

Because this error occurred during a 'before all' hook we are skipping all of the remaining tests.

最佳答案

Cypress 与普通的 javascript 一起工作得很好,所以让你的登录页面工作的最简单的方法如下,

const faker = require('faker');

let userData = {
    randomName: faker.name.findName(),
    randomEmail: faker.internet.email(),
    randomPassword: faker.random.number()
}

describe('Create new user', function () {
    it('Create new user via API', function () {
        cy.request('POST', '/cadastrarUsuario', {
            nome: userData.randomName,
            email: userData.randomEmail,
            senha: userData.randomPassword
        })
            .then((resp) => {
                expect(resp.status).to.eq(201)
            })
    })
})

关于javascript - 将 Faker 与 Cypress 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60469172/

相关文章:

laravel - 如何在 Laravel 中使用 Faker 填充嵌套类别表?

javascript - 自定义绑定(bind)的 knockout 滑动图像问题

javascript - 创建JS函数添加到舞台

php - 将用户从一个链接引导至不同 URL 的好方法是什么?

javascript - 如果使用 Cypress 的 CLI 命令中未声明参数之一,会引发异常吗?

cypress - cy.visit() 和 cy.request() 的不同 Cypress baseUrl

ruby-on-rails - Faker gem : How to set max. 长度/范围。公司.名称/编号.编号?

javascript - 文件上传后,ExtJS 解码方法无法解码 "&quot"

javascript - 如何在 Cypress 中获取所有特定按钮并单击具有特定数据 ID 的每个按钮

ruby-on-rails - Rails faker gem 产生相同的产品名称