私のangularjsプロジェクトで単体テストを使い始めようとしています。しかし、このエラーを取得し、問題の原因を把握できませんでした。angularjs karma jasmine undefinedはオブジェクトではありません
fibonacci.service.js
(function() {
'use strict';
angular.module('myFirstApp').service('FibonacciService', FibonacciService);
//FibonacciService.$inject = [];
function FibonacciService() {
// iterative approach
this.fibonacci = function (num) {
var prev1 = 1,
prev2 = 0,
current = 0;
for (var n = 2; n <= num; n++) {
current = prev1 + prev2;
prev2 = prev1;
prev1 = current;
}
return current;
};
}
})();
fibonacci.service.tests.js
'use strict';
describe('myFirstApp.FibonacciService', function() {
var FibonacciService;
beforeEach(module('myFirstApp'));
beforeEach(module('app.admin'));
beforeEach(inject(function($injector) {
FibonacciService = $injector.get('FibonacciService');
}));
it('Should output correct Fibanacci numbers', function() {
expect(FibonacciService.fibonacci(0)).toBe(0);
expect(FibonacciService.fibonacci(1)).toBe(1);
expect(FibonacciService.fibonacci(10)).toBe(55);
});
});
Gruntfile.js
[4mRunning "karma:unit" (karma) task[24m
[32m13 05 2016 09:13:27.271:INFO [karma]: [39mKarma v0.13.22 server started at http://localhost:9876/
[32m13 05 2016 09:13:27.279:INFO [launcher]: [39mStarting browser PhantomJS
[32m13 05 2016 09:13:29.064:INFO [PhantomJS 2.1.1 (Windows 8 0.0.0)]: [39mConnected on socket /#-RzPN-Jcq2NTtD8pAAAA with id 8973102
PhantomJS 2.1.1 (Windows 8 0.0.0): Executed 0 of 1 SUCCESS (0 secs/0 secs)
[1A[2KPhantomJS 2.1.1 (Windows 8 0.0.0) myFirstApp.FibonacciService Should output correct Fibanacci numbers FAILED
C:/Users/Denisas/my-yo-project/bower_components/angular/angular.js:4414:53
[email protected]:/Users/Denisas/my-yo-project/bower_components/angular/angular.js:336:24
[email protected]:/Users/Denisas/my-yo-project/bower_components/angular/angular.js:4374:12
[email protected]:/Users/Denisas/my-yo-project/bower_components/angular/angular.js:4299:22
[email protected]:/Users/Denisas/my-yo-project/bower_components/angular-mocks/angular-mocks.js:2954:60
TypeError: undefined is not an object (evaluating 'FibonacciService.fibonacci') in C:/Users/Denisas/my-yo-project/app/scripts/services/fibonacci.service.tests.js (line 13)
C:/Users/Denisas/my-yo-project/app/scripts/services/fibonacci.service.tests.js:13:28
PhantomJS 2.1.1 (Windows 8 0.0.0): Executed 1 of 1 (1 FAILED) (0 secs/0.022 secs)
[1A[2KPhantomJS 2.1.1 (Windows 8 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.004 secs/0.022 secs)
Warning: Task "karma:unit" failed. Use --force to continue.
...
karma: {
unit: {
options: {
frameworks: ['jasmine'],
singleRun: true,
browsers: ['PhantomJS'],
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
//'app/scripts/**/*.js'
//'app/scripts/app.js',
//'app/scripts/services/fibonacci.service.js',
'app/scripts/core/core.module.js',
'app/scripts/core/router.module.js',
'app/scripts/controllers/admin/admin.module.js',
'app/scripts/app.js',
'app/scripts/**/*.js'
//'app/scripts/services/fibonacci.service.tests.js'
]
}
}
}
...
実行時間(2016-05-13 06:13:27 UTC) カルマ:ユニット2.2s██████████████████████ ████████████████████████100% 合計2.2s
誰かを助けてください。
これはうまくいきました。しかし、私は新しいモジュールを作成するのではなく、既存のモジュールを使用する必要があります。 –