我总是放弃测试,因为我发现它比实际编写运行良好的代码要多得多,但我正在做一个我希望开源的项目,所以这次我致力于编写测试。
我有这个有 Angular 的应用程序,当我定义它时,我包含了依赖项
var app = angular.module('app', [ 'ngResource', 'ngSanitize', 'ngRoute', 'ui.ace' ]);
当我尝试测试 Controller 时,我从
开始beforeEach(angular.mock.module('app')); beforeEach(angular.mock.inject(function($rootScope,$controller){ scope = $rootScope.$new(); $controller('FileSystemCtrl',{$scope:scope}); }) );
当我运行 jasmine 时,我得到 p>
Failed to instantiate module app due to: Failed to instantiate module ui.ace due to: Module 'ui.ace' is not available!
我不想每次在测试中模拟或实例化“app”时都必须列出所有依赖项,因为这意味着当我添加新的依赖项时,我必须返回并更改所有已经存在的测试。
这对我来说似乎效率很低。 有人可以解释为什么我会收到此错误,以及如何解决它吗?
最佳答案
如果您不使用诸如 Karma 之类的测试运行器,我强烈建议您使用它。 Here's the link . karma 允许您做的是在一个主配置文件中定义所有需要的文件,这样您就可以在一个中央位置维护它。另外还有一个用于 karma 的 jasmine 插件。
关于angularjs - Jasmine 提示 Angular 模块中不需要它们的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20793567/