このアプリでは、通過しているテストがたくさんありますが、ui-routerを統合した後はすべて失敗します。 TypeError: undefined is not an object (evaluating '$httpBackend.verifyNoOutstandingExpectation')
のようなエラーが表示されます。およびTypeError: undefined is not an object (evaluating '$rootScope.$digest')
。一度統合すると、テストで注入されたものはもう機能しなくなります。カルマジャスミンテストはすべてui-routerを統合した後に失敗します
$stateProvider, $stateParams or $urlRouteProvider
を注入すると、テストは失敗します。私がそれらを注入しなければ、それらは合格する。
必要な設定がありますか?誰もがなぜ前の注射のすべてが突然すべて存在しないのか知っていますか?
エラー例
[email protected]/vendor/angular/angular.js:403:24
[email protected]/vendor/angular/angular.js:4880:12
[email protected]/vendor/angular/angular.js:4802:30
[email protected]/vendor/angular-mocks/angular-mocks.js:3163:60
app/vendor/angular/angular.js:4921:53
TypeError: undefined is not an object (evaluating '$rootScope.$digest') in app/core/test/sideBarDirTest.js (line 63)
app/core/test/sideBarDirTest.js:63:23
カルマコンフィグ
basePath: '',
frameworks: ['jasmine'],
files: [
'app/vendor/jquery/dist/jquery.js',
'app/vendor/angular/angular.js',
'app/vendor/angular-resource/angular-resource.js',
'app/vendor/angular-mocks/angular-mocks.js',
'app/core/app.js',
'app/core/envConfig.js',
'app/core/sideBarDir.js',
'app/core/app.js',
'app/core/test/*.js',
'**!/!*.html',
{pattern: 'app/core/**/*.json', watched: true, served: true, included: false}
],
exclude: [
'app.js',
'**/gulpfile.js'
],
reporters: ['progress', 'coverage', 'junit'],
preprocessors: {
'app/**/*.html': ['ng-html2js'],
'app/core/**/!(*Test|*test).js': 'coverage',
},
ngHtml2JsPreprocessor: {
stripPrefix: 'app/',
moduleName: 'html'
},
junitReporter: {
outputFile: 'coverage/test-results.xml',
suite: ''
},
coverageReporter: {
type: 'lcov',
dir: 'coverage/'
},
port: 9876,
colors: true,
config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
autoWatch: false,
browsers: ['PhantomJS'],
captureTimeout: 10000,
singleRun: true
は、依存関係として 'ngMock'をリストしていますか? – hughes
はい私はあります。 ngRouteを使用していたときに問題はありませんでした。 –
あなたのテストで実際のHTTPリクエストに依存していますか? – hughes