我正在开发一个非平凡的应用程序,具有以下文件夹结构:
build (required files such as angular.js)
Gruntfile.js
karma.conf.js
logs/
node_modules/
src/
- app/
- app.js
- module_name/
- module.js
- controllers/
- controller1.js
- controller2.js
- views/
- view1.html
- assets/
- 1.jpg
- styler.css
- components/ (plugged in modules [angular-ui, etc])
- index.html
我的控制器每个都连接到它们的父模块。然后在我的 app.js 文件中需要该模块。
我曾尝试编写一些单元测试,但我似乎一直遇到依赖问题,因为我尝试测试的控制器需要它的模块,然后该模块需要另一个模块,等等。
我的问题有几个部分:
如何构建我的 karma.conf.js 文件以包含必要的文件?具体这部分配置:
files: [ 'files_to_be_tested.js', ]
使用 Jasmine,我如何编写具有所有适当依赖项的单元测试?例如,我运行以下测试
Javascript
using 'strict'
describe('my Module', function() {
describe('myController', function() {
var ctrl, scope;
beforeEach(module('myModule'));
beforeEach(inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
ctrl = $controller('myController', { $scope: scope });
}));
it('should work', function() {
// Execute functionality
})
})
})
但我不断收到错误:Unknown provider: $stateProvider
,我认为这是来自加载模块的路由配置。
我开始怀疑我是否已经正确地分离了我的控制器?