我有一些简单的业力/茉莉花unit testing运行在angularjs应用程序。 我使用最新版本的Chrome,并在WebStorm IDE中运行我的testing。 有时testing套件运行非常快(0.24秒) 有时,完全相同的代码完全相同的testing套件运行非常缓慢(120秒) 我已经尝试过每一个常识的修复。 我搜遍了networking,试图发现我做错了什么。 为什么我的testing运行得如此缓慢?
在Vojta Jina出色的存储库中,他演示了指令的testing,他定义了模块包装器之外的指令控制器。 看到这里: https : //github.com/vojtajina/ng-directive-testing/blob/master/js/tabs.js 这不是不好的做法,并污染全球命名空间? 如果有另一个地方可能是合理的调用TabsController,是不是会打破东西? 上述指令的testing可以在这里find: https : //github.com/vojtajina/ng-directive-testing/commit/test-controller 是否有可能独立于指令的其余部分testing指令控制器,而不将控制器置于全局名称空间中? 将整个指令封装在app.directive(…)定义中将会很好。
当unit testing一个Angular工厂(Karma + Jasmine)时,如何在被测工厂注入一个存根依赖项? 这是我的工厂: mod = angular.module('myFactoryMod', []); mod.factory('myFactory', [ '$log', 'oneOfMyOtherServices', function($log, svc) { return makeSomethingThatDoesSomethingWithTheseDependencies($log, svc); } ]); 在实例化我的工厂时需要一个或多个其他服务。 这是我的testing: it('can get an instance of my factory', function() { var oneOfMyOtherServicesStub; angular.mock.module('myFactoryMod'); oneOfMyOtherServicesStub = { someVariable: 1 }; //****How do I get my stub in my target? **** angular.mock.inject(['myFactory', function(target) { expect(target).toBeDefined(); […]