【问题标题】:Browser navigates but url cannot be matched in e2e test浏览器导航但 url 在 e2e 测试中无法匹配
【发布时间】: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


    【解决方案1】:

    据我所知,您在检查 url 之后导航到 7,因为 afterEach 在每个 it 块之后执行

    【讨论】:

    • 我应该提到,行确实有触发路由的点击事件监听器。谢谢我编辑了这个问题。
    • 你有什么逐步调试的设置吗?
    • @RonaldHund ^.
    • 根据我的观察,标准的 browser.pause() 和 browser.debugger() 甚至都没有触发
    • 是的......这里也一样。我使用 webstorm 进行调试,它的第一个月是免费的,然后会话限制为 30 分钟。无论如何,许可证很便宜。我建议您安装它并设置像这样的调试配置stackoverflow.com/questions/20137109/… 它将提高您改进测试的能力。如果我正在处理您的问题,这就是我将如何处理它,逐步执行并查看发生了什么
    【解决方案2】:

    我刚刚找到了解决方案,并想在这里分享。 我的问题是基于时间的。 我有一些其他测试依赖于 BeforeEach 函数来正确设置。在其中一个中,我再次路由到我的主页。而且由于 beforeAll 在 beforeEach 调用之前执行,路由本身的功能符合预期,但我几乎立即路由走了。

    今天我学会了在一些内部测试中除非必要,否则不要使用 beforeAll。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      • 1970-01-01
      • 2018-04-01
      • 2015-01-07
      • 1970-01-01
      相关资源
      最近更新 更多