当我使用模块并尝试在业力中注入控制器时,我收到此错误
PhantomJS 2.1.1 (Mac OS X 0.0.0) Tests for Profile Controller should work FAILED
forEach@/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:322:24
loadModules@/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4548:12
createInjector@/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4470:30
workFn@/Users/work/Sites/APP/web-app/bower_components/angular-mocks/angular-mocks.js:2954:60
/Users/work/Sites/APP/web-app/bower_components/angular/angular.js:4588:53
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.004 secs / 0.016 secs)
我的考试
describe('Tests for Profile Controller', function(){
beforeEach(module('app'));
var scope, $controller;
beforeEach(inject(function(_$controller_) {
$controller = _$controller_;
}));
it('should work', function(){
expect('defined').toBeDefined();
})
})
我的Karma配置看起来像这样
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'dist/js/combined.bower.js',
'app/js/routes.js',
'app/js/controllers/profile.js',
'app/test/unit/controllers/profile.spec.js'
],
exclude: [
],
preprocessors: {
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['PhantomJS'],
singleRun: false,
concurrency: Infinity
})
}
我的apps模块是在我的routes.js(不是我的想法)中定义的,我现在尝试测试的控制器是profile.controller。我的bower.combined是我所有的凉亭组件连接和缩小。出现这种情况的原因是什么?
答案 0 :(得分:1)
事实证明,这是我的业力骗局中如何加载事物的问题。我通过首先加载一个组合的凉亭文件解决了这个问题,然后角度模拟(由于某种原因在组合的凉亭中是不够的,接着是我的角度模块(我必须将声明从我的路线文件中分离出来,然后是我的控制器文件夹,然后我的测试文件夹。我能给出的最好的建议是帮助我将测试分离到一个简单的控制器。将其内容复制到另一个文件并加载范围。让测试工作。然后慢慢重新添加依赖项以查看什么打破