E2E - 如何通过注册流程测试确认电子邮件?

时间:2018-01-30 10:32:15

标签: email protractor e2e-testing angular-e2e

我的注册流程/表单通过 email password confirmPass 以及一个 tc 复选框,其中包含一个布尔值。

当用户提交表单时,会打开带有文本的打开对话框,另一方面会向用户发送一封电子邮件以确认其注册。一切正常。

为此过程运行E2E量角器测试,我编写了以下代码:

it("Should register the user and send confirmation email", () => {

    page.getInputFields().userEmailInput.sendKeys("myFirstName.myLastName@domain-xxx.com");
    page.getInputFields().userPassInput.sendKeys('!Q2w3e4r');
    page.getInputFields().userConfirmPass.sendKeys('!Q2w3e4r');
    element(by.tagName('mat-checkbox')).click();

    expect( page
        .getInputFields()
        .userEmailInput.getAttribute("value") ).toEqual("myFirstName.myLastName@domain-xxx.com");

    expect(page
        .getInputFields()
        .userPassInput.getAttribute("value") ).toEqual('!Q2w3e4r');

    expect(page
        .getInputFields()
        .userConfirmPass.getAttribute('value') ).toEqual('!Q2w3e4r');

    element( by.tagName('mat-checkbox') ).isSelected().then(function(selected) {
        if (selected) {
            element( by.name('mat-checkbox') ).click();
            expect( page.getInputFields().userAccept.isSelected() ).toBe(true);
            page
        .getInputFields()
        .submitButton.click();
        }
    });
});

测试也运行无错误。但我的问题是我在测试后期待我收到收件箱中的确认电子邮件,这证明我的测试是100%成功,但我还是没有得到确认电子邮件,这意味着测试没有按预期运行。

  1. 是否可以运行测试以便发送确认电子邮件?
  2. 测试代码是否错误,我的确存在逻辑错误?
  3. 与点击submitButton后我应该打开的打开对话窗口有关,我没有测试它(在我的代码中)?
  4. 我还要提到的一件事是,如果缺少用户数据并且未检查tc(复选框),则会禁用该按钮。

1 个答案:

答案 0 :(得分:1)

问题已解决,这是工作代码:

it("Should register the user and send confirmation email", () => {

    page.getInputFields().userEmailInput.sendKeys("myFirstName.myLastName@domain-xxx.com");
    page.getInputFields().userPassInput.sendKeys('!Q2w3e4r');
    page.getInputFields().userConfirmPass.sendKeys('!Q2w3e4r');
    element(by.tagName('mat-checkbox')).click();

    expect( page
        .getInputFields()
        .userEmailInput.getAttribute("value") ).toEqual("myFirstName.myLastName@domain-xxx.com");

    expect( page
        .getInputFields()
        .userPassInput.getAttribute("value") ).toEqual('!Q2w3e4r');

    expect( page
        .getInputFields()
        .userConfirmPass.getAttribute('value') ).toEqual('!Q2w3e4r');

    browser.wait(protractor.ExpectedConditions.elementToBeClickable( element( by.name('submitForm') ) ), 100000)
            .then ( () => {
                browser.actions().mouseMove( element( by.name('submitForm') ) ).click().perform();
            }).then ( () => {
                browser.sleep(500);
                browser.actions().mouseMove( element( by.name('submitForm') ) ).click().perform();
            });

});

以下posting非常有帮助!