首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何告诉量角器忽略特定的异步角任务?

如何告诉量角器忽略特定的异步角任务?
EN

Stack Overflow用户
提问于 2017-06-05 20:50:28
回答 2查看 851关注 0票数 2

我的angularJS应用程序使用事件蒸,它保持打开http事件-蒸汽请求和侦听服务器事件。因此,我的问题是,当量角器开始测试我的angularJS应用程序时,它一直在等待完成事件流请求,因为我使用的是ignoreSynchronization=false,所以量角器等待,直到超时作为事件流http请求永远不会完成。所以我想教我的量角器忽略这样的事件流$http任务,并对我的应用程序进行测试。这些事件流是在我的应用程序的整个过程中实现的,所以每次都有事件流请求,然后量角器得到超时。

超时时会遇到以下错误:失败:超时等待异步角任务在300秒后完成。这可能是因为当前页面不是一个角度应用程序。请参阅常见问题的更多细节:https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular。以下任务挂起:- $http:https://example.com/custom/xxx/sse

有人能帮我解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-10 15:12:10

谢谢@quirimmo你的宝贵答复。

我们可以在不使用模拟后端调用的情况下实现超时问题,只需修改http请求并将超时设置为http请求,以便量角器等待到我们已经设置的请求获取超时为止(超时将关闭长期运行的http请求)并执行进一步的语句。

票数 0
EN

Stack Overflow用户

发布于 2017-06-05 21:11:35

在量角器中,您可以添加模拟。因此,实际上,您可以做的是添加几个模拟模块来模拟您需要的任何东西。

如果问题只是与异步请求计时的超时有关,则还可以从protractor.config.js中更改超时值,从而增加超时值。

顺便说一句,回到模拟,定义模拟并通过browser.addMockModule方法将它们添加到量角器中。

这里有一篇关于量角器中的模拟的好文章:

http://eitanp461.blogspot.ie/2014/01/advanced-protractor-features.html

这里有一个很好的npm模块,以便于您模拟angularjs $http请求:

https://github.com/atecarlos/protractor-http-mock

这可能是模拟模块的一个小示例,无需使用上面的节点模块:

代码语言:javascript
运行
复制
browser.addMockModule('httpMocker', function() {
  angular.module('httpMocker', ['ngMockE2E'])
  .run(function($httpBackend) {
    $httpBackend.whenGET('MYURL')
    .respond("MOCKED RESPONSE!");
  })
})

您也可以在测试中直接定义模拟,但是如果您想在测试中全局地定义模拟,我建议您直接在onPrepare方法中在protractor.config.js中定义模拟。

我希望它能帮上忙

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44377469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档