【发布时间】:2023-03-23 03:52:01
【问题描述】:
我开始在我们的 Angular 应用程序中使用 Protractor 学习 e2e 测试。 现在我正在尝试在其中一个页面中测试路由。 所有这一切都应该做的是启动一个页面对象,然后点击我们测试数据的第一行,id 为 7。 这个(点击)事件触发器应该触发一个路由事件,它将我带到所需的页面。
forwarding.e2e-spec.ts
let detailsPage: ForwardingDetailsPo;
beforeAll(async () => {
page = new ForwardingPagePo();
await page.navigateTo();
detailsPage = new ForwardingDetailsPo();
table = await page.getForwardingTablePo();
await table.getTable().getRow('7').click();
});
afterEach(async () => {
await detailsPage.navigateTo('7');
});
it('should navigate to details', async (done) => {
browser.getCurrentUrl().then(url => {
expect(url).toContain('administration/forwardings/7');
done();
}
);
});
});
之后,我尝试检查 url 是否已更改。 运行测试的自动打开的浏览器似乎完美地执行了任务,但测试失败了:
Expected 'http://localhost:4200/administration/forwardings' to contain 'administration/forwardings/7'.
我已经检查了我尝试点击的行.isPresent()。
如您所见,我尝试在代码中添加 await 以避免测试在路由完成之前运行,但这似乎并不完美。
提示任何人?
______EDIT_______
解决方案与点击本身无关,详见我的回答。
【问题讨论】:
标签: angular typescript routing protractor e2e-testing