在我的应用程序中,我有一个$ timeout,每分钟触发一次,并安排另一个$ timeout。因此我的e2e测试等待$ timeout并且根本不想工作。据我所知,没有办法说业力不等待某些$超时。但有没有办法检测代码是否在业力环境中运行,并且根本不运行此$ timeout?
答案 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);
(对不起我的英文)