gpt4 book ai didi

angular - E2E Angular 6 websocket 模拟

转载 作者:行者123 更新时间:2023-12-02 12:04:00 25 4
gpt4 key购买 nike

我们最近开始使用 Cypress 通过 Angular 6 UI 进行 E2E 测试。事实证明它非常棒,而且我们认为它比 Protractor 更好用。

我们的计划是模拟与服务器的所有交互。对于使用 cy.route() 和装置的所有 REST/XHR 调用来说,这都很容易。

但是,我们也使用网络套接字。事实证明, mock 与之交互的过程并不那么容易。

从我迄今为止所做的研究来看,我能找到的唯一建议是使用 cy.stub()。原则上听起来不错,但我找不到对此的任何详细说明,最好有一些使用它来模拟网络套接字的示例。

我认为可能有效的另一种方法是使用 Angular 的 TestBed 服务。注入(inject)我们自己的服务来处理与 Web 套接字的交互。

但这两条路线都是正确的下降路线吗?谁能提供一些最佳方式的例子?

任何能让我朝着正确方向前进的指示都将受到极大的赞赏。谢谢。

最佳答案

我在工作中遇到了类似的问题,最终得到了与您类似的解决方案(我认为)。

我们的应用程序依赖于另一个执行一些网络操作的库。我没有使用 TestBed 或类似的工具,而是使用 Angular 的环境文件将其分入不同的服务中进行 e2e 测试,该服务遵循与真实服务相同的接口(interface)。

然后在 stub 服务(返回固定数据)中,我在窗口对象上公开了用于在运行时与 stub 进行交互的方法,以使其返回不同的数据等。

我已经发表了一篇博客文章,解释了该方法以及提交。

http://wtfisanapi.com/htf-do-i-write-e2e-tests-with-a-stubbed-dependency-angular-nrwl-nx-edition/

完整代码可以在这里找到 https://github.com/robt1019/e2e-stub-demo

您的解决方案效果如何?

关于angular - E2E Angular 6 websocket 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50476156/

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