我试图用Karma + Jasmine编写单元测试,但是遇到了一个带有角度模拟的错误。在运行咕噜测试时,我得到以下错误:
/Users/danielbogart/Documents/coding/work/AexNav/bower_components/angular-mocks/angular->mocks.js:17 Chrome39.0.2171 (Mac 10.9.4)中未定义的对象(计算'angular.mock = {}'):无法在/Users/danielbogart/Documents/coding/work/AexNav/bower_components/angular-mocks/angular->mocks.js:17设置未定义的属性‘PhantomJS’
Gruntfile业力配置:
karma: {
options: {
frameworks: ['jasmine'],
files: [
'dom_munger.data.appjs',
'tests/spec/*.js',
'bower_components/angular-mocks/angular-mocks.js'
],
logLevel: 'ERROR',
reporters: ['mocha'],
autoWatch: false, //watching is handled by grunt-contrib-watch
singleRun: true
},
all_tests: {
browsers: ['PhantomJS', 'Chrome']
},
during_watch: {
browsers: ['PhantomJS']
}
}谢谢!
发布于 2015-01-07 16:21:21
您还需要包括angular.js,然后只有angular.mocks才能工作,否则window.angular将没有定义。
files: [
'dom_munger.data.appjs',
'path/to/angular.js', //<-- include angularjs
'bower_components/angular-mocks/angular-mocks.js',
'tests/spec/*.js'
],发布于 2017-05-10 11:04:25
2017年更新和webpack 2 (但同一angular<2)
因此,在测试中,您需要如下所示的标题:
import angular from 'angular';
import 'angular-mocks/ngMock';并将每个全局module引用替换为angular.mock.module
发布于 2015-01-07 16:20:09
角-mocks.js假定angular.js也包括在内。
https://stackoverflow.com/questions/27823741
复制相似问题