所以我有一个不错的角度应用程序。这是我的第一个Ng项目,我希望保持简单,并在开始时将所有内容放在一个文件app.js
中。
var app = angular.module('myApp', []);
app.factory( ... );
app.controller( ... );
...
...
正如预期的那样,现在变得难以管理。所以我决定在文件中拆分功能,并使用grunt-concat
组合所有文件。这就是我的结构外观 -
.
├── app.js
├── controllers
│ ├── address.js
│ ├── delivery.js
│ ├── editaddress.js
│ ├── login.js
│ └── newaddress.js
├── filters
│ └── filters.js
└── services
├── address_service.js
├── cartservice.js
├── constants.js
├── services.js
└── transformrequest.js
这项工作非常顺利且易于管理。但是,我对如何组织测试感到很茫然。
例如,过滤器早先定义为
angular.module("app.services", [])
.factory('CartService', function() {
})
.factory(...)
这使我能够正确地编写业力测验。现在,过滤器跨文件,并添加
每个angular.module("app.services", [])
都会出错 - 我不确定如何跨文件整理代码并使其可测试。
我看了angular-seed,但即使他们只有一个控制器,服务等文件。
所以我的问题是 - 我如何在多个文件中组织我的代码,并且仍然可以在Karma中测试它。
非常感谢!
答案 0 :(得分:0)
我正在将我的文件与您的文件分开非常相似的目录结构。
我在app.js中定义我的应用程序:
angular.module('myApp', []);
然后在其他文件中,您不必使用“app”实例。您可以这样参考:
angular.module('myApp').factory( ... );
angular.module('myApp').controller( ... );
如果您使用此方法,则不必连接文件,您可以在html或karma测试中逐一包含它们。
我使用我的camra.conf.js:
...
files: [
'lib/angular/angular.js',
'lib/angular-mocks/angular-mocks.js',
'src/app.js',
'src/**/*.js',
'tests/**/*.js'
],
...