问题标签 [karma-jasmine]
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单元测试指令中的链接
我正在尝试编写单元测试来测试我的指令。但是,当我单击复选框时,它不会更新模型。
我怎样才能让它改变模型?不知何故,它似乎没有绑定。
当我删除指令并仅使用绑定到范围 var 的普通复选框时,会发现与以下相同的行为。(所以这不是指令的具体问题)
规格功能:
angularjs - 使用 Karma-Jasmine 进行单元测试
我正在使用 angularJS,并且我了解如何使用 karma-jasmine 测试我的 $scope 对象,但是我在测试控制器文件中的常规函数和变量时遇到了困难
我想做的是测试是否期望(aNumber).toBe(34);
angularjs - Angularjs + karma 模块 MainCtrl 中的许多控制器
我在文件 MainCtrl.js 中有一个名为 MainCtrl 的模块
我正在尝试完成 Jasmine 测试(使用 Karma)来验证控制器。理想情况下,我的应用程序将只包含一个模块 MainCtrl 和控制器,然后让我将所有控制器分隔在不同的文件中。
我在其他文件中有控制器,例如 ht 文件 loginCtrl.js 中的 loginCtrl
在我的单元测试中,我尝试这样做:
应用程序.js
我的 karma.conf.js
当我开始测试时,我在浏览器控制台中收到此消息:
当我将 [] 添加到声明模块时,测试工作但不是应用程序:(:
想寻求帮助:)
angularjs - 如何测试angularJs http请求jsonp
因此,我在尝试创建一些单元测试的同时尝试遵循本教程。
好吧,我一直在尝试测试对 ergast 开发人员 api 的 $http 请求。正如您在教程中看到的,$http 请求是向服务ergastAPIservice 发出的
然后在控制器中使用它:
我将如何测试这个(服务)。我已经开始了这样的事情:
就像我说的卡住了,让它工作,我认为你在响应中所做的应该是你在测试中所期望的,它与实际模拟的 $http 请求没有任何关系......或者我我弄错了
任何提示和/或指出我正确的方向将不胜感激,
干杯!
http-headers - 使用 superagent 和 jasmine-ajax 进行测试时的标头 Content-Type 区分大小写问题
我在我的测试环境中使用superagent和jasmine-ajax(带有 jasmine 适配器的业力)。
在尝试模拟 superagent 将处理的响应时,我注意到一个与响应标头区分大小写有关的问题。
测试代码:
在 superagent.js 行中 ~695 有:
在 mock-ajax.js 行 ~175 有
因此,显然在每个各自的库中,大小写存在差异,但是根据规范,我所做的所有研究都表明该字段不区分大小写。我认为这可能是 PhantomJS 的问题,但我也尝试过使用 Chrome,但存在同样的问题。
任何见解将不胜感激。
angularjs - AngularJS + Karma + Jasmine + Karma-Coverage:空覆盖率报告
我正在尝试将我当前的 AngularJS 项目与 Karma Coverage 集成。请在package.json和我的karma-config下方找到。
包.json
业力配置
当我尝试运行“node_modules/.bin/karma start conf/advisor/karma.conf.js”时,所有测试都成功运行,但业力覆盖报告完全为空。我尝试了几个选项,但无法显示报告。
控制台输出从不运行覆盖范围的预处理器。我可以看到它实际上是为 html2js 运行的。
问题:我在这里做错了吗?如何进行业力覆盖以加载我的 src js 文件?
angularjs - 测试指令控制器 AngularJS 业力
我无法访问控制器值,一切都未定义。我可以看到日志中的值,但无法访问它们。是否有创建指令和测试其控制器的首选方法。我不想用 .controller('Ctrl') 创建一个控制器,因为它是整个应用程序的全局控制器,它可能被覆盖。
这是我的测试。
angularjs - 测试 Angular $q qith Jasmine 2 和 karma
尝试测试一个基于 Promise 的服务,它执行以下操作:
当尝试在 Karma + Jasmine 2.0 中对此进行测试时,我尝试使用它的 done() 回调,但它总是超时并且永远不会解决承诺。
从 Jasmines 文档来看,这就是我应该如何使用 done() 和异步代码,但似乎问题是承诺永远不会解决
angularjs - Angular mock 无法注入我的模块依赖项
我想为我的应用程序测试一个 Angular 控制器fooApp
,定义如下:
控制器,MainCtrl
定义:
所以我测试了几种创建测试的方法,比如这个:
结果:
我也用beforeEach(angular.mock.module('cwfApp'));
(而不是beforeEach
前面代码中的第一个)进行了测试,但错误几乎相同。
关于我的 karma.conf.js 文件,我设置了这个文件列表:
注入似乎失败了,但我真的不明白我的配置中缺少什么或错误。上面的stacktrace并没有给出很多解释……
任何的想法?
我正在使用 Angular 1.2.8。
问候
使用@Engineer 提供的代码进行编辑:
错误几乎相同:
我将尝试创建一个小提琴来重现我的问题...
angularjs - 使用 Karma 和 Jasmine 在 Angular JS 中测试父控制器范围的变量
我在一个页面上有两个控制器。它们被“包装”在 HTML 标记上,一个是“父”,另一个是“子”,如下所示:
在我的控制器的 JS 文件中,我从“子”控制器中的“父”控制器引用了一个对象。
父控制器:
子控制器:
因为“子”控制器嵌套在“父”控制器中,所以来自父控制器的对象在子控制器中被继承。
这在 Karma 测试中不起作用,因为所有文件都被分解为单独的单元并单独测试。单元测试时,我的“子”控制器中的$scope.myReferencedObject.someProperty
引用未定义,因为没有原型继承。
我如何在 Karma 中解决这个问题?