Angular 违反要求的工厂定义
Angular factory definition breaking with requires
我有一个 Angularjs 工厂定义如下:
angular.module('myapp').factory('myService', myService);
function myService($http) {
但是我的 jasmine 测试没有发现这个。但是,如果我添加一个空的 requires 数组,它可以在测试中运行,但应用程序本身会中断。
angular.module('myapp', []).factory('myService', myService);
function myService($http) {
在 https://code.angularjs.org/1.5.8/docs/api/ng/function/angular.module 中查看它所说的 requires 属性
If specified then new module is being created. If unspecified then the module is being retrieved for further configuration.
但我不明白这会如何破坏事情,以及如何让测试和应用程序都正常工作。
该服务包含在测试文件中:
describe('myService', function() {
var myService;
beforeEach(module('myapp'));
beforeEach(inject(function($injector) {
myService = $injector.get('myService');
}));
...
问题是我的模块依赖项被定义的地方有
angular.module('tcom.search', ['ngSanitize', 'ui.bootstrap'])
所以我不得不更新我的 grunt 配置以包含 bower 组件
karma: {
unit: {
options: {
frameworks: ['jasmine'],
singleRun: true,
browsers: ['PhantomJS'],
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-sanitize/angular-sanitize.js',
'bower_components/angular-bootstrap/ui-bootstrap.js',
我有一个 Angularjs 工厂定义如下:
angular.module('myapp').factory('myService', myService);
function myService($http) {
但是我的 jasmine 测试没有发现这个。但是,如果我添加一个空的 requires 数组,它可以在测试中运行,但应用程序本身会中断。
angular.module('myapp', []).factory('myService', myService);
function myService($http) {
在 https://code.angularjs.org/1.5.8/docs/api/ng/function/angular.module 中查看它所说的 requires 属性
If specified then new module is being created. If unspecified then the module is being retrieved for further configuration.
但我不明白这会如何破坏事情,以及如何让测试和应用程序都正常工作。
该服务包含在测试文件中:
describe('myService', function() {
var myService;
beforeEach(module('myapp'));
beforeEach(inject(function($injector) {
myService = $injector.get('myService');
}));
...
问题是我的模块依赖项被定义的地方有
angular.module('tcom.search', ['ngSanitize', 'ui.bootstrap'])
所以我不得不更新我的 grunt 配置以包含 bower 组件
karma: {
unit: {
options: {
frameworks: ['jasmine'],
singleRun: true,
browsers: ['PhantomJS'],
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-sanitize/angular-sanitize.js',
'bower_components/angular-bootstrap/ui-bootstrap.js',