4

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

4

2 回答 2

0

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

于 2013-06-21T10:12:25.617 回答
-2

来自 AngularJS文档

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

如果你调用了很多 $timeouts,你可以使用waitsFor jasmine 函数。像这样的东西:

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

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

(对不起我的英语不好)

于 2013-06-19T08:19:22.550 回答