问题标签 [angular-mock]

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 投票
5 回答
8268 浏览

javascript - 使用 Angular mock 加载 JSON 文件以进行 Backendless 开发

我在单独的 .js 文件中为前端后端环境编写了这个小代码。myfile.json每当有 ajax 调用时,我都需要获取/somelink

但是这段代码不起作用并给了我错误:

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

请注意,我不想直接调用 $http 在我的代码中获取 .json 文件,因为这会破坏生产代码。这样做的目的是单独保留此代码以进行后端开发。

谢谢。

更新 1:

我补充说:

现在,除了以前的相同错误之外,我还有另一个错误:Uncaught Error: No pending request to flush !

更新 2:

玩了一圈之后,我发现了一个小技巧。我把它放在.run()所有其他 $httpBackend 模拟之前。此外,此.js文件必须放在所有控制器/服务/指令之前和 app.js 引导程序之后。

然后这个:

关键是async: false这样可以确保将 JSON 加载到 variabledata中。所有这些都必须在其他对象触发并调用 ajax 事件之前发生。这仅适用于前端后端开发。生产时,当然会删除这个 .js 文件。我不太喜欢这个是因为使用async: false和直接$.ajax()而不是$http

0 投票
2 回答
13291 浏览

angularjs - 角度模拟“模块”导致“[对象对象]不是函数”

我正在尝试使用通过 Teaspoon 运行的 Jasmine 在 Angular 中创建一些单元测试。测试正在运行,但是我有一个简单的测试只是为了测试失败的控制器的存在。我有以下测试设置。

require 语句由处理我的依赖项的 Browserify 处理,但我也可以连接到我用于规范助手的 sprockets。

在需要的应用程序中,我有

当我运行这个测试时,我得到了以下错误

我花了很长时间试图弄清楚这一点,但我不知道发生了什么。任何帮助表示赞赏。

0 投票
1 回答
261 浏览

angularjs - AngularJS,如何提取像 ngMock 这样的模拟依赖注入

我们有一个分析服务,它依赖注入到我们的大多数控制器中,以帮助我们跟踪用户所做的操作。

与其在每次创建测试套件时都设置此服务的模拟版本,不如采用 ngMock 方法并抽象模拟。最好的方法是什么?

0 投票
1 回答
1751 浏览

angularjs - 在 Jasmine 测试中模拟 Angulars ng-init 函数

当我在角度测试中实例化控制器时,我想将此函数注入到 ng-init 指令中,在 html 中我会这样设置它:

在我的测试中,我可以编写一个这样的函数,它将正确的东西粘贴在范围内,但我认为它很混乱。我也担心当前在 html 中硬连线的功能在我的中途测试中搞砸了

0 投票
3 回答
7960 浏览

javascript - 如何从 Angular 的 $httpBackend 返回文件内容?

我正在尝试以角度设置 e2e 测试套件,并且需要使用 $httpBackend 返回预设响应。如果我可以只返回一个文件内容,那就太好了,例如

我尝试使用 $http,类似于

但它没有用,猜测 angular 不支持从 $httpBackend 返回承诺?

我可以做到的一种方法是在应用程序加载时引用带有响应的 js 文件,并将文件的内容分配给变量,但是能够按需加载数据会更好。

0 投票
1 回答
4036 浏览

angularjs - 在简单的 Jasmine 测试中注入 $log 服务

是的,我对 Angular 和 Jasmine 完全陌生,我不知道如何为我的测试注入模拟 $log。这是测试:

这在注入行上失败并出现错误:

我错过了什么?

0 投票
1 回答
1257 浏览

angularjs - 如何在 AngularJS 中自动加载模块而不将其指定为依赖项

如果您在 index.html 中包含 angular-mocks.js,ngMock 会自动包含自身。

什么是强制 Angular 在测试模式下加载模块的最简单方法,只需包含一个文件而不必编辑任何模块依赖项。

0 投票
2 回答
4283 浏览

javascript - 使用 angular-mocks 匹配所有 GET url 以实现后端

我现在正在编写一个没有后端 ajax 的前端。我angular-mocks用来模拟这样的 API 调用:

但是,如果 ajax 通过params: {id:12345},它将附加到 url 为'/somelink?id=12345'. 这不会when('GET', '/somelink')

有没有办法使用 RegEx 或一些技巧来解决这个问题?只是为了不管里面是什么paramsrespond()仍然被调用?

谢谢。

更新 1:

我不能使用.whenGET,因为我的后端系统也POSTPUT。所以我需要保持通用。这两个参数.when('GET', '/somelink')实际上是我的代码中的变量。

由于'/somelink'is a variable in another JSON,因此在 JSON 中使用 RegEx/\/somelink/似乎不起作用。至少这是我现在看到的。

0 投票
1 回答
297 浏览

javascript - AngularJS 初始化后端测试

我有 AngularJS + RequireJS 应用程序。我的任务是为 UI 开发目的创建一个后端版本。因此,模拟了部分/所有 HTTP 请求的版本。所需的用户流是:

  1. 用户去 /debug 初始化一个后端版本。
  2. 用户可以在模拟 HTTP 请求的情况下使用该应用程序。

我正在尝试使用 ngMockE2E.$httpBackend。但我找不到任何关于如何将其注入已经引导的应用程序的信息。按照大多数谷歌搜索的示例,我正在尝试创建一个新模块并引导该模块:

但这给了我“错误:ng:btstrpd App 已经用这个元素引导”。关于如何开发此任务的任何想法?

0 投票
2 回答
5792 浏览

angularjs - 如何使 $httpBackend 对 URL 查询参数的顺序不敏感?

我正在使用 Angular.js$httpBackend来测试一些包装$http调用的服务(这是在 ngMock 中,而不是在ngMockE2E 中)。

似乎对 URL 查询参数expectwhen顺序很敏感。例如,如果我这样做$httpBackend.when('POST','/apiCall?X=1&Y=2').respond(/* ... */)或,如果我在 URL 中有Y=2&X=1而不是X=1&Y=2$httpBackend.expectPOST('/apiCall?X=1&Y=2'),我会得到 URL 不匹配。

我想以这样一种方式编写我的测试,即被测试的服务可以自由地更改 URL 查询字符串参数的顺序而不会破坏测试。我无法在 $httpBackend 文档中找到任何解决此问题的方法。这样做的正确方法是什么?