验证Cookie柏树抛出'TypeError:cy.chain不是一个函数

时间:2018-08-31 08:54:31

标签: javascript cypress

我正在下面的“登录”赛普拉斯测试中验证cookie,但是赛普拉斯抛出以下错误:

  

TypeError:cy.chain不是函数

'../support/index.js'下清楚地导入了以下内容:有人可以告知错误原因吗?

import './commands'

柏树测试:

describe("Login test validate cookie", () => {
    it.only('Verify the cookies test for login', function() {
        cy
        .login(Cypress.env('email'), Cypress.env('password'))
        cy
        .getCookie('csrftoken')
        .then((csrftoken) => {
            console.log(csrftoken)
        })
    })

以下是我的“登录”方法/函数../support/commands.js

Cypress.Commands.add('login', (email, password) => {
    return cy.chain().request({
        method: 'POST',
        form: true,
        url: '${cypress.env("test_server")}',
        body: '{"email", "password"}',
    })
}); 

“ cypress.env.json”文件中提供了以下详细信息

{ 
  "email": "test@soccer.nl",
  "password": "test1234"
}

1 个答案:

答案 0 :(得分:0)

错误是正确的; cy.chain()确实不是函数。但是,您的命令中存在许多问题:

  1. 除非计划链接此命令,否则不需要返回任何内容。当然,它什么都没有伤害。
  2. 如前所述,.chain()是不必要的。
  3. 您的url字段需要使用反引号(``)来使${...}正常工作。
  4. 您的body字段将包含“电子邮件”和“密码”,而不是您的实际电子邮件和密码。

可能还有其他问题,但这是我所看到的。

这是没有这些问题的命令的样子:

Cypress.Commands.add('login', (email, password) => {
    cy.request({
        method: 'POST',
        form: true,
        url: `${cypress.env("test_server")}`,
        body: `{"${email}", "${password}"}`,
    });
});