量角器测试重定向

Ser*_*gey 1 testing protractor angular

我有一个想要测试的 Angular 应用程序。它有登录部分,我需要以某种方式知道它是否工作正常(它发送登录数据,打开套接字连接,重定向到应用程序深度,并且路由防护没有阻止该重定向)。

我试过了

import { AppPage } from './app.po';
import { browser, by, element, until } from "protractor";
import urlContains = until.urlContains;
Run Code Online (Sandbox Code Playgroud)

...

it('should log in', () => {
        page.navigateTo();
        page.fillInputs();
        page.logIn();

        browser.waitForAngular();
        browser.wait(() => {
            return urlContains('dashboard');
        }, 2000);
    });
Run Code Online (Sandbox Code Playgroud)

即使我用不正确的数据填充字段并且应用程序不执行任何重定向,它也会成功。如何实现此重定向等待然后检查网址?

如果重要的话我会使用 Angular 6。

是的,我见过类似的主题,但我不明白答案。

xyz*_*xyz 6

看来我可能有一个旧版本的量角器,我找不到命名空间urlContains的方法until。我使用ExpectedConditions,它对我来说效果很好。

因此,使用预期条件,您可以编写如下代码:

expect(
  browser.wait(
    protractor.ExpectedConditions.urlContains("dashboard"), 5000
  )
    .catch(() => {return false})
).toBeTruthy(`Url match could not succced`);
Run Code Online (Sandbox Code Playgroud)

我喜欢使用 catch,这样脚本就不会在出现错误时停止。还将expect()标记一个测试用例(在阅读生成的报告时很有用)。