1
嘗試單元測試Angular(Ionic)1應用程序時使用angular.mock.inject(...)
函數會拋出以下錯誤。奇怪的是,沒有特定的錯誤信息,特別難以調試。無論我嘗試什麼,它似乎總是在沒有任何消息的情況下拋出相同的非描述性錯誤。Angular Mock Inject在使用Karma和Jasmine時沒有消息拋出錯誤
PhantomJS 2.1.1 (Linux 0.0.0) LoginController should pass FAILED
bower_components/angular/angular.js:4527:53
[email protected]_components/angular/angular.js:321:24
[email protected]_components/angular/angular.js:4487:12
[email protected]_components/angular/angular.js:4409:30
[email protected]_components/angular-mocks/angular-mocks.js:3160:60
[email protected]://localhost:9876/context.js:151:17
刪除對angular.mock.inject()
的呼叫允許測試通過。
這裏是有問題的測試:
describe('LoginController', function() {
var scope;
var controller;
beforeEach(angular.mock.module('mCommonJobs'));
beforeEach(angular.mock.inject(function($rootScope, $controller) {
scope = $rootScope.$new();
controller = $controller('LoginController', {
$scope: scope
});
}));
it('should pass', function() {
expect(true).toEqual(true);
});
});
我的涼亭依賴關係:
"dependencies": {
"angular-resource": "#1.5.0",
"ionic": "driftyco/ionic-bower#1.3.2",
"ngCordova": "^0.1.27-alpha",
"ng-cordova-oauth": "^0.3.0",
"ngstorage": "^0.3.11",
"angular-mocks": "^1.5.2"
},
"resolutions": {
"angular": "~1.5.x"
}
而且文件噶測試配置設置:
files: [
//Angular source
'bower_components/angular/angular.js',
'bower_components/angular-animate/angular-animate.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-resource/angular-resource.js',
'bower_components/angular-sanitize/angular-sanitize.js',
'bower_components/angular-ui-router/release/angular-ui-router.js',
'bower_components/ionic/js/ionic.bundle.js',
'bower_components/ng-cordova-oauth/dist/ng-cordova-oauth.js',
'bower_components/ngCordova/dist/ng-cordova.js',
'bower_components/ngCordova/dist/ng-cordova-mocks.js',
'bower_components/ngstorage/ngStorage.js',
//App code
'app/**/*.module.js',
'app/**/*.js',
'app/*.js',
//Test files
'test/**/*.test.js'
],
你'角mocks.js'版本應該是完全一樣你的'angular.js'版本。你的bower'resolution' config強制Angular的版本是'1.5.x' – Phil
@Phil我把'angular-mocks'的版本改成了'^ 1.5.2'。同樣的錯誤。我會更新這個問題。 – LanceLafontaine
你是否重新運行'bower install'? – Phil