问题标签 [ngmocke2e]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
344 浏览

angularjs - 使用量角器模拟后端

我发现了很多关于这个主题的类似讨论,但不幸的是,它们都不适合我的场景。我正在尝试模拟量角器的后端响应,以测试目前真实 API 中不存在的新功能。我尝试了不同的方法来实现这一目标,但没有运气。每次我运行量角器测试时,都会对真实API执行http请求,而不是拦截请求。

这是我的场景:我有一个 AngularJS 应用程序,并且在一个视图中有一个搜索输入框,如下所示:

然后,我有一个控制器:

并且comService.indexContacts执行 http 请求:

我不打算解释一切的逻辑,我们只是说,当用户在输入字段中键入内容时,该indexContacts函数会触发对 API 的 GET 请求,并且用户可以在屏幕上看到呈现的联系人列表。

现在我很想在我的量角器测试中拦截那个 $http(req) 并返回一个模拟 JSON,但我不明白如何。

好的,我在这里所做的是将一些文本注入到搜索字段中:element(by.id('inputSearch')).clear().sendKeys('gai');这有效,但是,我想拦截由前一个 comService 触发的 http 请求,而是将模拟 JSON 返回给应用程序以呈现自定义用户列表,而不是为此使用真正的 API。

我怎样才能做到这一点????

0 投票
1 回答
924 浏览

angularjs - 使用 ngMockE2E 模拟 httpBackend 量角器不起作用

遵循此处描述的基本准则https://www.npmjs.com/package/ng-mock-e2e

但仍在调用正常的 REST 调用。

这不应该那么难,有人可以指出我忽略了什么吗?尝试了其他几个第三方供应商来模拟 httpBackend,但无法让它工作。也许实际应用程序中最初的 $http 调用推翻了模拟的调用?

- 编辑 -

根据 Angular 文档,将 ngMockE2e 依赖项添加到我的主应用程序angular.module('qApp', ['...', '...', '...', 'ngMockE2E']);会导致各种奇怪的错误:

错误:意外请求:GET http://qubus7.test.kmsgroep.com/api/localizations/en2 在 $httpBackend (angular-mocks.js:1263) 处不再有请求

在运行 Protractor 时,它突然看到对我的 UI 元素的引用,这很有意义,因为不再加载。

0 投票
1 回答
678 浏览

angularjs - 角度 $httpBackend.when 模拟 - 延迟响应不是全局的

我发现这篇文章如何在使用 $httpBackend 模拟数据时创建人工服务器延迟。

有没有办法在每个模拟的基础上拥有这个?也许是这样的:

或者

0 投票
2 回答
197 浏览

angularjs - 无法为 ngMockE2E 使用 httpBackend 刷新

我正在尝试使用茉莉花测试我的控制器。基本上,当控制器被创建时,它会调用一个服务来发出 http 请求。我正在使用 httpBackend 来获取假数据。当我尝试运行测试时,我总是收到错误“没有待处理的刷新请求”。如果我删除 httpBackend.flush() 则测试失败,因为 controller.data.name 未定义。谁能知道为什么会这样?谢谢。

该模块的代码在这里:

服务代码:

控制器的代码是:

测试控制器的代码是:

0 投票
0 回答
17 浏览

angularjs - AngularJS:模拟特定的 $http 调用

我正在开发一个可以进行多次$http调用的 AngularJS 应用程序。其中大多数工作正常:后端存在并返回适当的数据。我现在正在做的事情是针对不完整的后端进行调用。

我怎样才能在不弄乱或不知道什么已经在工作的情况下模拟特定的呼叫?

我一直在研究ngMockE2E,但这会破坏整个后端。将其设置为通过后,我不知道如何仅覆盖我正在使用的调用。

有没有更简单的方法来解决这个问题?

0 投票
1 回答
93 浏览

angularjs - ui路由在角度返回意外请求:GET

下面是我的 Angular 项目的 ui 路由设置。我无法调出工单列表页面。我不确定以下设置有什么问题,请您告诉我如何打开工作订单列表页面来查看我的工作订单。

在浏览器上调用的 URL http://localhost:63342/vdash/index.html#/workorders

应用程序.js

workOrderResourceMock.js

错误 angular.js:13236 错误:意外请求:GET
app/workorder/workOrderListView.html 在 $httpBackend (angular-mocks.js:1403) 处不再有请求

0 投票
1 回答
55 浏览

angularjs - 如何使用正则表达式来捕捉 angularjs 模拟中的 url?

我需要做这样的事情

到目前为止,我使用的所有请求都使用这种模式

但是,我想我现在必须使用以 /regex/ 开头的正则表达式,但我不知道如何赶上 url

任何帮助将不胜感激,在此先感谢

0 投票
1 回答
298 浏览

protractor - 量角器 http-backend-proxy 401 未经授权的错误

我正在使用量角器并使用 http-backend-proxy 模拟后端调用。我登录并拨打了我嘲笑的电话。然后我使用清除本地存储中的令牌

然后我执行 browser.refresh() 因为我希望它把我重定向回登录屏幕,以便我可以执行下一个测试。

我的问题:当执行刷新时,它没有将我带回登录屏幕,而是尝试再次调用该页面并失败说这是一个意外的 GET 请求。这是因为它现在返回 401 Unauthorized 响应(因为我清除了令牌)。

当它是 401 Unauthorized 响应或让它将我重定向回该实例中的登录时,我如何处理拦截呼叫?

谢谢!

0 投票
2 回答
207 浏览

angularjs - 在 httpBackend 模拟函数中使用变量

我希望能够定义一个变量,然后在 module.run() 函数内的 respond() 方法中使用该变量。我的 it() 中有这段代码:

但是在对象上方定义的testValue变量httpBackendMock在 run() 函数中根本不可见,而是“未定义”。

我的理解是 JS 中的 'var' 定义的变量可用于内部范围的代码,但这不会发生在这里。有没有办法让变量在那里工作?

0 投票
0 回答
81 浏览

angularjs - angularjs - e2e 模拟后端

我正在尝试模拟后端,以便编写一些 e2e 测试。

我在网上搜索,但我无法弄清楚我做错了什么。我在代码的第一行收到此错误:

角度未定义。

我的量角器配置文件是:

我的 e2e 测试的开始是:

我究竟做错了什么?谢谢你的帮助

编辑

我也在browser.waitForAngular()尝试做之前添加了 beforeEach 模块但仍然没有,和以前一样的错误