问题标签 [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.
angularjs - Jasmine/Angular:TypeError:无法读取未定义的属性“$modules/$injector”
我正在尝试运行 jasmine 测试用例,并且我登陆未定义的“$modules”。我正在加载未缩小和最新版本的库,如下所示,
我的规范代码片段如下,
我收到以下错误,
TypeError: Cannot read property '$modules' of undefined
TypeError: Cannot set property '$injector' of undefined
任何信息都会有所帮助。谢谢 !
angularjs - Jasmine - 测试控制器是否存在
我有一个简单的控制器:
我要做的就是测试这个控制器的定义:
我收到以下错误:
angularjs - 如何使用 angular.mocks.inject 调用工厂构造函数?
考虑这段代码:
这个模块/服务:
到底如何使用注入将“数据”传递给用户函数构造函数?
编辑:我的例子来自这里的代码:http: //sauceio.com/index.php/2014/07/angularjs-data-models-http-vs-resource-vs-restangular/
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 错误?
javascript - AngularJS 和 Jasmine:模拟服务
我无法模拟以下服务“广播者”对服务“pushServices”的依赖关系。
茉莉花规格如下:
});
我得到的错误是典型的“未知提供者”:
我究竟做错了什么?我应该如何注入依赖项?
angularjs - 测试 Angular 请求
在弄清楚如何在工厂测试 $http 请求时遇到问题。
基础工厂:
现在我想测试一下以确保我添加了我的newProperty
. 我希望能够编写如下测试:
我最初的想法是这样$httpBackend.expect
可以让我访问请求,但它似乎只有一个.respond
方法,没有别的:
所以我尝试httpInterceptor
通过执行以下操作来设置:
但拦截器从未真正触发(日志不会打印到日志中)。我对这个有点想法。
也许我在postLog
方法中添加新属性违反了某些原则,应该将其重构为自己的可测试性方法?尽管如此,如果有一种方法可以利用出站请求,即使它会被$httpBackend.expect
.
javascript - 在 Protractor / E2E 测试 (AngularJS) 中访问 $http 数据
我有一堆进展顺利的单元测试,我已经开始将 Protractor E2E 测试添加到我的项目中。我在测试页面上的交互元素时做得很好,但是我在测试某些从浏览器发送出去的数据时遇到了麻烦。
例如,我想看看单击某个按钮是否会产生一个POST
到某个端点。
我使用以下方法设置了量角器:
我了解如何使用量角器进行交互:
但是,我不知道如何$httpBackend
在 Protractor 中进行设置,以便捕获因.click()
事件而发送的数据。我需要额外的模块吗?
在 Karma/Mocha 中,我会简单地:
但我不知道如何在量角器中获得对$httpBackend
和模块的引用。inject
angularjs - AngularJs 单元测试:“未满足的请求:删除”
为我的控制器测试获取“不满意的请求:删除”。下面是我的服务、控制器和测试的代码。测试是使用 jasmine-karma 和 angular-mock 编写的。提前致谢。
服务:
控制器:
测试:
输出:
angularjs - 测试时我不能使用我的范围变量
我不能在我的 karma 测试中使用我的变量 $scope.films 并且我不知道我在哪里失败了:
电影服务.js:
电影控制器.js:
电影控制器.cs:
app.js :
最后是没有通过的测试:
业力返回: