等待响应得到处理

时间:2018-08-10 18:25:56

标签: bdd cucumberjs cypress

我正在使用Cypress.IO进行测试自动化,并且遇到了问题

这些是我的黄瓜声明

鉴于我使用我的用户凭据登录到SelfCare应用 然后点击我的帐户

在“我使用用户凭据登录到SelfCare应用程序”的步骤定义中,我正在创建订户并设置浏览器的本地存储

要创建订户,我需要调用Rest服务并处理REST调用的响应并设置本地存储

..............

在“我单击我的帐户”的步骤定义中,我单击链接

我们将我导航到仪表板页面,要能够成功导航到本地存储,必须具有几个属性。 .....................

Cypress没有等待第一步完成,而是导航到导致错误的第二步

如何使柏树等待第一步完成?

这是我的源代码

 Given(/^I login in to  app using my user credentials$/, () => {
    subscriberHelpers.createSubscriber();
});

Given(/^I click on My Account$/, () => {
    cy.log(window.localStorage.getItem('CD-SystemId'));
    cy.log(window.localStorage.getItem('CD-SessionId'));
    cy.log(window.localStorage.getItem('CD-SubscriberId'));
    //cy.get('.c-header-listItem > .c-link').contains("My Account").click();
});

export function createSubscriber() {

    cy.request({
        url: "Some URL",
        method: 'POST',
        body: {
            "AutoLogin": true,
            "Credentials": {
                "Login": `AutomationUser${Math.floor(Math.random() * Math.floor(1000))}@sharklasers.com`,
                "Password": "Test1234"
            },
            "Subscriber": {
                "Category": 0,
                "Email": `AutomationUser${Math.floor(Math.random() * Math.floor(1000))}@sharklasers.com`,
                "FirstName": "Automation",
                "LastName": "Test",
                "Login": `AutomationUser${Math.floor(Math.random() * Math.floor(1000))}@sharklasers.com`,
            }
        },
        headers: {

        }
    }).then((response) => {
        if (response.status === 200 && ("SessionId" in response.body))
            localStorage.write("CD-SessionId", response.body.SessionId);
            localStorage.write("CD-SubscriberId", response.body.Subscriber.Id);
    })
}

0 个答案:

没有答案