在哪里声明 ngMock 模块
Where to declare ngMock module
我刚刚开始对 angular 应用进行单元测试和端到端测试。
我不知道应该在哪里声明 ngMock 和 ngMocke2e 模块。我的 bower.json
文件引用了 ngMock,index.html
文件指向 angular-mocks.js
脚本。
但是,当我在 app.js
的依赖项中声明 ngMock 时,应用程序不会加载。此外,控制台中没有显示任何错误。
我需要使用这些模块进行测试,但从 app.js
.
将它们注入应用程序似乎违反直觉
你不需要添加 angular-mocks 到你的 main app.js
你需要注入 angular-mocks 到你的 karma conf 中,这是唯一需要的地方它。
例如:
module.exports = function(config) {
'use strict';
config.set({
files: [
'bower_components/angular/angular.js',
'bower_components/angular-resource/angular-resource.js',
...
'bower_components/angular-mocks/angular-mocks.js'
...
]
});
};
如 Tony Barnes 的回答所述,您可以在 karma 配置中注册 ngMock 源文件。
更深入地了解其工作原理;一旦应用程序的 ngMock inject function is called for the first time, it performs a bootstrap 并自动包含 'ng' 和 'ngMock' 模块以及为我们的单元测试注册的模块。
这就是为什么我们不需要按照 angular.module('app', ['ngMock'])
的方式编写代码来设置我们的测试,但它也感觉有点神奇,因为这个引导步骤已经为我们完成并不明显.
我写了很多 AngularJS Unit Testing Tutorials, such as ngMock Fundamentals for AngularJS - Understanding Inject 更深入地讨论了 gnomic 的概念。
我刚刚开始对 angular 应用进行单元测试和端到端测试。
我不知道应该在哪里声明 ngMock 和 ngMocke2e 模块。我的 bower.json
文件引用了 ngMock,index.html
文件指向 angular-mocks.js
脚本。
但是,当我在 app.js
的依赖项中声明 ngMock 时,应用程序不会加载。此外,控制台中没有显示任何错误。
我需要使用这些模块进行测试,但从 app.js
.
你不需要添加 angular-mocks 到你的 main app.js
你需要注入 angular-mocks 到你的 karma conf 中,这是唯一需要的地方它。
例如:
module.exports = function(config) {
'use strict';
config.set({
files: [
'bower_components/angular/angular.js',
'bower_components/angular-resource/angular-resource.js',
...
'bower_components/angular-mocks/angular-mocks.js'
...
]
});
};
如 Tony Barnes 的回答所述,您可以在 karma 配置中注册 ngMock 源文件。
更深入地了解其工作原理;一旦应用程序的 ngMock inject function is called for the first time, it performs a bootstrap 并自动包含 'ng' 和 'ngMock' 模块以及为我们的单元测试注册的模块。
这就是为什么我们不需要按照 angular.module('app', ['ngMock'])
的方式编写代码来设置我们的测试,但它也感觉有点神奇,因为这个引导步骤已经为我们完成并不明显.
我写了很多 AngularJS Unit Testing Tutorials, such as ngMock Fundamentals for AngularJS - Understanding Inject 更深入地讨论了 gnomic 的概念。