我正在尝试使用Karma Jasmine编写单元测试,但遇到角度模拟错误 . 运行grunt测试时出现以下错误:
PhantomJS 1.9.8(Mac OS X)错误TypeError:'undefined'不是/ Users / danielbogart / documents / coding / work / AexNav / bower_components / angular-mocks中的对象(评估'angular.mock = {}') /angular->mocks.js:17 Chrome 39.0.2171(Mac OS X 10.9.4)错误未捕获TypeError:无法在/ Users / danielbogart / Documents / coding / work / AexNav / bower_components / angular中设置undefined属性'mock' -mocks / angular-> mocks.js:17
Gruntfile karma配置:
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']
}
}
谢谢!
3 回答
您还需要包含angular.js,然后只有angular.mocks将工作,否则window.angular将是未定义的 .
update for 2017 and webpack 2 (但角度<2)
Webpack正在替换
所以在测试中你需要一个 Headers ,如:
并用
angular.mock.module
替换每个全局module
引用angular-mocks.js假设angular.js也被包括在内 .