e2e测试和$ timeout

时间:2013-06-19 07:33:26

标签: angularjs karma-runner

在我的应用程序中,我有一个$ timeout,每分钟触发一次,并安排另一个$ timeout。因此我的e2e测试等待$ timeout并且根本不想工作。据我所知,没有办法说业力不等待某些$超时。但有没有办法检测代码是否在业力环境中运行,并且根本不运行此$ timeout?

2 个答案:

答案 0 :(得分:0)

我没有找到任何优雅的解决方案。现在我决定在url中传递一个标志,解析它并根据这个标志禁用这个特殊的$ timeout。这个解决方案看起来不太好但是有效。我希望以后的angular会为这类事情提供某种e2e dsl命令。

答案 1 :(得分:-2)

来自AngularJS docs

  

在测试中,您可以使用$ timeout.flush()来同步刷新队列   延期函数。

如果你拨打许多$ timeouts,你可以使用 waitsFor jasmine功能。像这样:

waitsFor(function () {
  $timeout.flush();

  return workedThreeTimes();
}, 'should run something per minute', 1000 * 60 * 3);

(对不起我的英文)