5

我有一个角度应用程序,用于$routeProvider将不同的部分加载到ng-view.

因此,在我的 e2e 场景中,当我调用 时browser().navigateTo('/'),我还需要调用sleep(0.5)或其他东西来等待元素实际出现。

不幸的是,调用sleep完全破坏了测试!突然之间,框架的行为就好像它根本看不到页面,并且永远找不到元素。

我无需等待加载任何内容的 e2e 测试可以找到我期望的所有元素,但如果我在这些测试中放置了睡眠调用,那么它们也会中断。

有人对看什么有建议吗?有什么方法可以增加控制台的详细程度?有什么方法可以让测试仪重新聚焦?

附加信息:

  • 浏览器控制台或命令行控制台都没有错误输出!
  • 我已经直接从 angular-seed 项目中复制了我的业力设置。据我所知,它们是相同的。
4

1 回答 1

0

我建议使用Protractor进行 Angular E2E 测试。这具有角度和回报承诺的意识。你可以这样做:

ptor.get('http://localhost/#/my-route').then(function () {
  // Do something
});

你也可以ptor.wait这样使用:

    var timeout = 10000;

    ptor.wait(function () {
      return {some condition}
    }, timeout);

在继续之前,它将等待条件为真。

您也可以使用ptor.waitForAngular()which 将等待 Angular 解决任何承诺和 http 请求。

于 2013-12-05T09:32:27.690 回答