草庐IT

javascript - 错误: No provider for "framework:browserify"!(解决:framework:browserify)

我有一个Angularjs项目,我正在使用karma来运行测试。我遇到了一些问题,出现了这个错误:ReferenceError:Can'tfindvariable:requireathttp://localhost:9876/base/src/test/bower_components/angular-animate/index.js?b8fe1c0a06b723a75c7e596fd8a86d91965f681c:1Reding到一些论坛,有人告诉我使用karmabrowserify,但我现在收到这个错误:2807201522:41:15.573:WARN[preprocess]:C

javascript - 如何在 AngularJS 中测试 Controller 指令

经过多次研究,我一直无法正确测试Angular指令,因为我无法访问其Controller内的函数。指令代码如下:angular.module('app').directive("accordionItem",function(){return{restrict:'E',replace:true,templateUrl:function(elem,attr){return'partials/invoice/'+attr.temp+'.html';},scope:{invoice:'=',temp:'@'},controller:function($scope,listSelectionS

javascript - 为 TDD JavaScript 模拟用户输入

我发现使用jQuery或native元素触发函数模拟实际用户事件越来越困难。例如,如果您有文本输入并且不希望用户能够添加字符,则可以使用e.preventDefault()上的jQuery规范化事件对象调用keydown事件。但是,无法以编程方式验证此测试场景。即使没有调用preventDefault,以下测试也会通过,因为jQuerykeydown触发器不是“真实”事件。input.val('test').trigger(jQuery.Event({which:68});expect(input).toHaveValue('test');如果没有正确的代码,这个测试应该会失败,因为输

javascript - jasmine-node 是否提供任何类型的 "fail fast"选项?

当我从命令行运行一套jasmine测试时,我想要某种类型的快速失败选项,以便它在第一个断言错误时停止今天有这样的东西吗? 最佳答案 刚拼在一起jasmine-bail-fast获得这种行为。npminstalljasmine-bail-fast然后在你的第一个规范之前:require('jasmine-bail-fast');jasmine.getEnv().bailFast();希望得到它mergedtojasminecore然后作为标志添加到jasmine-node。 关于javas

javascript - Jasmine 期待(结果代码)。toBe(200 或 409)

对于某些测试场景,我遇到了针对多个值进行测试的需求,这些值都可以。我想做的事情如下:expect(resultCode).toBeIn([200,409]);当resultCode为200或409时,该规范应该通过。这可能吗?已添加感谢peter和dolarzo指导我创建匹配器。我在使用addMatchers()时遇到了问题。所以,最后我在jasmine.js中添加了以下内容:jasmine.Matchers.prototype.toBeIn=function(expected){for(vari=0;i这给了我一个可行的解决方案。我现在可以根据需要执行toBeIn。(Jasmine1

javascript - 我如何解决 AngularJS 单元测试中的 promise

我正在使用基本的karma/jasmine设置来测试我的Angular代码。这是我的测试:var$controllerConstructor,ctr,mockSuperheroData,scope,deferred,q;describe('maincontroller',function(){var$controllerConstructor,ctr,mockSuperheroData,scope,deferred,q;beforeEach(inject(function($controller,$rootScope,$q){scope=$rootScope.$new();$contr

javascript - $browser.$$checkUrlChange 在 Jasmine 测试中未定义

我有以下测试:it('shouldmaintainabindbetweenthedataatthe$scopetothedataattheingredientsService',function(){$scope.addFilters('val1',$scope.customFiltersData,'filter1');$scope.$digest();expect($scope.customFiltersData).toEqual(ingredientsService.filters());});我收到以下错误:TypeError:undefinedisnotafunctionatS

javascript - 当不同文件中存在测试时,如何在 jasmine 中对测试套件进行分组?

根据文档,我们可以有测试套件的组-子组,但它们只存在于一个文件中,如下所示describe('MainGroup-Module1',function(){beforeEach(function(){module('app');});describe('subgroup-1',function(){//Subgroup//specsgoeshere});describe('subgroup-2',function(){//Subgroup//specsgoeshere});});如果我想将subgroup-1和subgroup-2保存在两个不同的文件中,我如何将这两个子组分组到MainG

javascript - 试图监视(Jasmine)Array.prototype 方法导致堆栈溢出

这很奇怪。将testemrunner与jasmine2一起使用并执行以下规范(尽管它正确地标记了没有期望):describe('Spyingonarray.prototypemethods',function(){it('shouldworkthisway',function(){spyOn(Array.prototype,'push').and.callThrough();//expect(1).toBe(1);});});但是,添加一个expect(任何expect!)它会导致堆栈溢出,并在testem控制台中显示以下消息:RangeError:超出最大调用堆栈大小。在http:/

javascript - 将 Jasmine JavaScript 单元测试与 TFS Build CI 集成的简便方法

我一直在使用Jasmine编写JavaScript单元测试。但是,这些测试在浏览器中运行,而不是作为MSTest的一部分。我希望我的TFS持续集成构建在JavaScript单元测试失败时中断。我知道VisualStudio2012中有针对此问题的解决方案,但我在2010年(并且可能在未来很长一段时间内)。有没有一种简单的方法可以将基于Jasmine的JavaScript单元测试与TFSBuild集成? 最佳答案 Chutzpah测试运行器使您能够从命令行或VisualStudio运行QUnit和JasmineJavaScript单元