gpt4 book ai didi

javascript - 在 karma 场景中调用 `sleep` 或 `pause` for angular app breaks framework

转载 作者:搜寻专家 更新时间:2023-11-01 04:42:01 25 4
gpt4 key购买 nike

我有一个 Angular 应用程序,它使用 $routeProvider 将不同的部分加载到 ng-view 中。

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

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

我的 e2e 测试无需等待任何加载,可以找到我期望的所有元素,但如果我无论如何在这些测试中调用 sleep,它们也会中断。

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

附加信息:

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

最佳答案

我建议使用 Protractor用于 Angular E2E 测试。这具有 Angular 和返回 promise 的意识。然后你可以做这样的事情:

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

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

    var timeout = 10000;

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

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

您还可以使用 ptor.waitForAngular() ,它将等待 Angular 解决任何 promise 和 http 请求。

关于javascript - 在 karma 场景中调用 `sleep` 或 `pause` for angular app breaks framework,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18037780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com