在业力场景中调用“睡眠”或“暂停”以获得角度应用中断框架

时间:2013-08-03 22:10:21

标签: javascript angularjs karma-runner angularjs-e2e

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

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

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

我的e2e测试中,我不必等待加载任何东西,可以找到我期望的所有元素,但如果我在那些测试中进行了一次睡眠调用,那么它们也会破坏。

有没有人建议看什么?有些方法可以增加控制台的冗长程度?将测试仪重新聚焦的一些方法?

其他信息:

  • 浏览器控制台或命令行控制台上没有错误输出!
  • 我已将我的业力设置直接复制到angular-seed项目中。据我所知,他们是完全相同的。

1 个答案:

答案 0 :(得分: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);

在继续前进之前,等待条件成立。

此外,您可以使用等待角度来解析任何承诺和http请求的ptor.waitForAngular()