我有一个要测试的Angular应用程序。它有登录部分,我需要知道它是否工作正常(它发送了登录数据,打开了一个套接字连接,重定向到应用程序深度,而路由防护并未阻止该重定向)。
我尝试过
import { AppPage } from './app.po';
import { browser, by, element, until } from "protractor";
import urlContains = until.urlContains;
...
it('should log in', () => {
page.navigateTo();
page.fillInputs();
page.logIn();
browser.waitForAngular();
browser.wait(() => {
return urlContains('dashboard');
}, 2000);
});
即使我确实用不正确的数据填充字段并且该应用程序不执行任何重定向,它也会成功。如何实现此重定向等待,然后检查URL?
如果重要,我正在使用Angular 6。
是的,我看到了一个类似的主题,答案是我不理解的。
答案 0 :(得分:2)
似乎我可能有一个旧版本的量角器,找不到urlContains
名称空间的until
方法。我与ExpectedConditions合作,对我来说很好。
因此,使用“预期条件”,您可以拥有类似以下代码:
expect(
browser.wait(
protractor.ExpectedConditions.urlContains("dashboard"), 5000
)
.catch(() => {return false})
).toBeTruthy(`Url match could not succced`);
我喜欢使用catch,这样脚本就不会在出现错误时停在中间。此外,expect()
会标记一个测试用例(在读取生成的报告中很有用)。