以前当我写角度应用程序时,我曾经做过
angular.module('ngApp', ['all', 'required', 'ng*', 'dependencies'])
Run Code Online (Sandbox Code Playgroud)
在我app.js和那里面services/和controllers,我可以简单地这样做:
angular.module('ngApp')
Run Code Online (Sandbox Code Playgroud)
我有一个回购来证明这一点.
但后来我看到了angular-seed/,实施的方式是,
在 controllers/
angular.module('appControllers', ['dependencies'])...
Run Code Online (Sandbox Code Playgroud)
在 services/
angular.module('appServices', ['dependencies'])..
Run Code Online (Sandbox Code Playgroud)
在app.js
angular.module('ngApp', ['ng*', 'appControllers', 'appSrvices'])..
Run Code Online (Sandbox Code Playgroud)
我没有设计问题,事实上我认为它很好,因为evrything是依赖注入和模块化.
我有一个情况我有一个services/movie.js有
angular.module('myAppServices', ['ngResource']).factory(..)
Run Code Online (Sandbox Code Playgroud)
和 services/config.js
angular.module('myAppServices').factory(..)
Run Code Online (Sandbox Code Playgroud)
但是在用业力和茉莉花编写测试时.在karma.conf.js中,
我有
files: ['usual', 'bower_components/angular-*.js', 'app/services/**/*.js', '..']
但问题是在movie.js之前加载了config.js并且有错误,myAppServices没有加载或拼写错误.
我修复它的方式是我做的:
files: ['..', 'app/services/movie.js', 'app/services/config.js']
Run Code Online (Sandbox Code Playgroud)
我也为此设置了一个github repo.这是控制器测试文件,这是karma.conf.
我想知道采用这种模块化方法的可能方法是什么,而不必指定为我的测试加载文件的顺序.
这是我的第一次单元测试,它失败了:
Error: Unexpected request: GET https://api.themoviedb.org/3/configuration?api_key=2e329c92227ed8be07944ae447c9426f
Expected GET https://api.themoviedb.org/3/movie/top_rated?api_key=2e329c92227ed8be07944ae447c9426f
Run Code Online (Sandbox Code Playgroud)
如果我能得到一些帮助来解决这个问题会很有帮助.
考试
describe('Controllers', function() { …Run Code Online (Sandbox Code Playgroud) 我有两个环境,我正在运行我的测试(本地和travic ci).如果我在本地运行它,我需要在测试中做一些调整.
是否可以使用Karma而不使用两个单独的配置文件?