问题标签 [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 - AngularJS $httpBackend expectGET 不工作
我正在为 AngularJS 工厂编写 QUnit 测试。这是工厂的代码:
另请参阅下面的 Qunit 测试用例。test-1 从作品中获得了 http 响应$httpBackend
,但在 test-2 中,它没有。
知道为什么它不起作用吗?
angularjs - 如何以可以观察 UI 并与 UI 交互的方式暂停 AngularJS 指令单元测试?
动机
测试指令时;有时断言以不明显的方式失败,堆栈跟踪没有帮助,并且在使用 Chrome 开发人员工具在断点处暂停时检查局部变量会将森林隐藏在树后面。
这是我希望我能够暂停单元测试(可能使用iit
or ddescribe
)并在指令的 UI 周围查看以缩小错误行为的时候。
至今
我之前已经能够使用 KnockoutJS 实现这一点,并发现它在复杂场景中是一种非常有用的技术。现在我想对 AngularJS 做同样的事情。
- 我发现我可以将
$compile
使用 Angular 的元素附加到 html 正文,这使它可见,但是我无法与之交互,就好像所有绑定都已关闭一样。 - 经过仔细检查,我发现在运行测试用例(一个
it
块)时,一切似乎都井然有序,一旦测试用例完成,所有事件侦听器就会从相应的 DOM 元素中消失——click
比如<button ng-click="...">
. - 经过一番挖掘,我发现在angular-mocks.js:1965 的深处有一个
afterEach
块可以调用.off()
在两个地方关闭 DOM 事件侦听器:injector.get('$rootElement').off();
和handle && angular.element(handle.elem).off();
(通过angular.mock.clearDataCache();
)
- 当我注释掉这两
.off()
行时,瞧,附加的指令在 DOM 中变得栩栩如生!
注意:虽然我链接到 ( v1.2.10-build.2148+sha.fced1c0
) 的 angular-mocks 版本不是最先进的,但较新的版本似乎只是在涉及到这部分时移动的行号有所不同。
问题
是否有更好的(更多支持、更少临时性和/或更少hackish)方法来实现我想要做的事情?如果是这样,怎么做?
编辑:版本
- 业力 0.10.9
- 茉莉花 1.3.1
- Angular Mocks v1.2.10-build.2148+sha.fced1c0
- AngularJS 1.2.10-build.2148+sha.fced1c0
angularjs - 单元测试 AngularJS 和 PouchDB 服务
我正在尝试对我的各个 Angular 工厂进行单元测试,但在尝试正确模拟和注入 PouchDB 对象时遇到了困难。我的工厂代码目前如下:
我曾尝试使用 Angular 的 $provide 服务注入一个模拟 PouchDB 实例,但没有成功:
我不完全确定从这里去哪里。任何帮助将不胜感激!
jasmine - 未知提供者:$rootElementProvider <- $rootElement <- karma 运行中的 $location 错误
嗨,我在运行 karma run 时遇到错误
控制器 :
这里上面的控制器用户 LCService
LC服务:
在 karma.conf.js 文件中
我的应用程序中也有“angular-route.js”。但是当我运行它时,它显示以下错误
如何解决这个问题?
angularjs - 在 e2e 测试中从 httpBackend 访问 POST 数据
在这个例子中,我有一个 e2e 测试做一个按钮点击,它执行一个执行 POST 的函数
我希望能够在我的 e2e 场景代码中从 testDev httpBackend 回调访问“数据”对象以进行验证。
这在 e2e 测试中可能吗?如果是这样,你能指出我正确的方向吗?
谢谢
场景代码
测试模块
标记
控制器
赛跑者
javascript - $httpBackend 无法与 ngMocksE2E 模块一起正常工作
我正在使用 Angular JS (v1.2.16) 制作一个简单的应用程序前端。我将使用 REST API,但该 API 尚未构建,其规范已完成。因此,基于模块 ngMockE2E 中的链接:$httpBackend - 服务,我可以模拟 API 请求以及我的开发过程。
我试图做同样的事情并提出一个演示,但它给了我一个错误,我觉得它的 passThrough 功能失败了。
演示可在此链接http://ngdemo.ws01.tranceserve.com/#/projects上找到。
现在它给了我一个错误说明:
错误:意外请求:GET /views/projects.html 不再有请求
请帮忙。
angularjs - Angular mock 无法注入我的模块依赖项
我想为我的应用程序测试一个 Angular 控制器fooApp
,定义如下:
控制器,MainCtrl
定义:
所以我测试了几种创建测试的方法,比如这个:
结果:
我也用beforeEach(angular.mock.module('cwfApp'));
(而不是beforeEach
前面代码中的第一个)进行了测试,但错误几乎相同。
关于我的 karma.conf.js 文件,我设置了这个文件列表:
注入似乎失败了,但我真的不明白我的配置中缺少什么或错误。上面的stacktrace并没有给出很多解释……
任何的想法?
我正在使用 Angular 1.2.8。
问候
使用@Engineer 提供的代码进行编辑:
错误几乎相同:
我将尝试创建一个小提琴来重现我的问题...
javascript - AngularJS 模拟自执行控制器
如何防止具有自实例化功能的角度控制器执行测试?
(我用一个人为的例子来说明我的问题)
我有一个控制器在启动时执行一些代码(在我的例子中是 ajax)
我正在尝试为控制器编写测试。我不想doSomething执行。
使用backbone.js时,我会做类似的事情:
我在初始化之前修改原型以防止执行。$controller 似乎给了我一个控制器的实例。能够获得原型会很有用。可能还有其他方法可以克服这个我不知道的!
angularjs - 创建单元测试,其中每个测试都有其特定的测试数据和测试模拟
我有这个测试结构并且它正在工作,但是当我在这个单元测试 .js 文件中放置更多测试时,它不能满足我的要求,但是所有相关的测试都应该去那里。
工作:
我想要的是用我自己的话或伪代码描述的:
这是我尝试过的,但它不起作用。
我假设在测试中此时将存根分配给 $provide.value 为时已晚,因为之前注入/创建了课程计划工厂,并且课程计划工厂具有真正的存根对象作为依赖项。只是看看:
这就是我得到的错误:
那么,我怎样才能为服务依赖注入一个存根而不是在 beforeEach 方法中,而是在单元测试本身内部,因为我需要一个特定的存根!?
javascript - 对角度教程步骤感到困惑
来自https://docs.angularjs.org/tutorial/step_11单元测试部分:
我只是不明白为什么第 2 行评估为真并且scope.phones
正在[]
追求
beforectrl = $controller(PhoneListCtrl, {$scope: scope});
scope.phones
评估为undefined
和 after but before $httpBackend.flush()
,它评估为一个空数组,有人可以解释一下这个谜吗?