问题标签 [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 投票
2 回答
3517 浏览

angularjs - Jasmine/Angular:TypeError:无法读取未定义的属性“$modules/$injector”

我正在尝试运行 jasmine 测试用例,并且我登陆未定义的“$modules”。我正在加载未缩小和最新版本的库,如下所示,

我的规范代码片段如下,


我收到以下错误,
TypeError: Cannot read property '$modules' of undefined
TypeError: Cannot set property '$injector' of undefined

任何信息都会有所帮助。谢谢 !

0 投票
1 回答
5261 浏览

angularjs - Jasmine - 测试控制器是否存在

我有一个简单的控制器:

我要做的就是测试这个控制器的定义:

我收到以下错误:

0 投票
0 回答
531 浏览

angularjs - 如何使用 angular.mocks.inject 调用工厂构造函数?

考虑这段代码:

这个模块/服务:

到底如何使用注入将“数据”传递给用户函数构造函数?

编辑:我的例子来自这里的代码:http: //sauceio.com/index.php/2014/07/angularjs-data-models-http-vs-resource-vs-restangular/

0 投票
0 回答
1474 浏览

angularjs - 如何在 Jasmine 规范中为 AngularJS(使用 PhantomJS)使用多个 $timeout.flush() 和 $httpBackend.flush() 调用而不会出现 $digest 错误

我正在尝试使用 PhantomJS 浏览器为带有 Karma 和 Jasmine 的 AngularJS 服务编写单元测试。我要测试的服务使用嵌套的 Promise(用于读取 IndexedDB 数据库、从服务器获取响应并将响应写回数据库)。

写入数据库时​​也必须这样做(写入本地数据库,发布/放入服务器,使用服务器 ID 更新本地数据库)。除了处理与服务器的连接丢失的测试之外,我正在编写的测试都可以工作。

发生这种情况时,sync() 方法将在线状态设置为 false 并创建一个 $timeout,通过递归调用重复检查连接。如果连接再次建立,所有未同步的数据将被同步(并且相应的 sync() 调用的承诺将被解析)。

当第二次调用 backend.flush() 函数时(刷新在 save() 函数中发出的 http 请求,我收到一条错误消息,告诉我 $digest 已经在进行中。省略该行,不刷新请求(并且因此也会出错)。

有没有办法在正确的时间刷新所有内容而不会出现 $digest 错误?

0 投票
1 回答
215 浏览

javascript - AngularJS 和 Jasmine:模拟服务

我无法模拟以下服务“广播者”对服务“pushServices”的依赖关系。

茉莉花规格如下:

});

我得到的错误是典型的“未知提供者”:

我究竟做错了什么?我应该如何注入依赖项?

0 投票
1 回答
199 浏览

mocha.js - 无法让 Mocha 和 Angular 模拟在 Plunker 中工作

我试图在 plunker 中展示 mocha 的示例,但它给了我角度模拟未定义的问题。我尝试复制和粘贴凉亭角度模拟无济于事。

来自角度模拟的错误代码说窗口未定义

Plunker 在这里找到

0 投票
2 回答
121 浏览

angularjs - 测试 Angular 请求

在弄清楚如何在工厂测试 $http 请求时遇到问题。

基础工厂:

现在我想测试一下以确保我添加了我的newProperty. 我希望能够编写如下测试:

我最初的想法是这样$httpBackend.expect可以让我访问请求,但它似乎只有一个.respond方法,没有别的:

所以我尝试httpInterceptor通过执行以下操作来设置:

但拦截器从未真正触发(日志不会打印到日志中)。我对这个有点想法。

也许我在postLog方法中添加新属性违反了某些原则,应该将其重构为自己的可测试性方法?尽管如此,如果有一种方法可以利用出站请求,即使它会被$httpBackend.expect.

0 投票
2 回答
2422 浏览

javascript - 在 Protractor / E2E 测试 (AngularJS) 中访问 $http 数据

我有一堆进展顺利的单元测试,我已经开始将 Protractor E2E 测试添加到我的项目中。我在测试页面上的交互元素时做得很好,但是我在测试某些从浏览器发送出去的数据时遇到了麻烦。

例如,我想看看单击某个按钮是否会产生一个POST到某个端点。

我使用以下方法设置了量角器:

我了解如何使用量角器进行交互:

但是,我不知道如何$httpBackend在 Protractor 中进行设置,以便捕获因.click()事件而发送的数据。我需要额外的模块吗?

在 Karma/Mocha 中,我会简单地:

但我不知道如何在量角器中获得对$httpBackend和模块的引用。inject

0 投票
0 回答
1202 浏览

angularjs - AngularJs 单元测试:“未满足的请求:删除”

为我的控制器测试获取“不满意的请求:删除”。下面是我的服务、控制器和测试的代码。测试是使用 jasmine-karma 和 angular-mock 编写的。提前致谢。

服务:

控制器:

测试:

输出:

0 投票
0 回答
330 浏览

angularjs - 测试时我不能使用我的范围变量

我不能在我的 karma 测试中使用我的变量 $scope.films 并且我不知道我在哪里失败了:

电影服务.js:

电影控制器.js:

电影控制器.cs:

app.js :

最后是没有通过的测试:

业力返回: