「Angular.jsの動作」で説明されているJasmineユニットテストを作成しようとしています。アプリは正常に実行されますが、テストを実行しようとすると、node.jsコマンドプロンプトでこのエラーが発生し続けます。
私の設定:
module.exports = function(config) {
config.set({
// base path, that will be used to resolve files and exclude
basePath: '',
// frameworks to use
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'javascripts/angular.min.js',
'javascripts/angular-mocks.js',
'javascripts/app.js',
'tests/angelloModelSpec.js',
],
私のindex.htmlヘッダー:
<head>
<script src="javascripts/angular.min.js" type="text/javascript"></script>
<script src="javascripts/angular-mocks.js"></script>
<script src="javascripts/app.js"></script>
<meta charset="utf-8">
<title>Angello</title>
<meta name="description" content="Angello Story Application">
<link rel="stylesheet" href="app.css">
</head>
私のテスト:
describe('Service: angelloModel', function(){
// load the service's module
beforeEach(module('Angello'));
var modelService;
// Initialize the service
beforeEach(inject(function (angelloModel){
modelService = angelloModel;
}));
describe('#getStatuses', function(){
it('should return seven different statuses', function () {
expect(modelService.getStatuses().length).toBe(7);
});
});
});
コマンドプロンプトでの出力:
Your environment has been set up for using Node.js 0.10.26 (x64) and npm.
Your environment has been set up for using Node.js 0.10.26 (x64) and npm.
C:\Users\jmclaughlin>karma start karma.conf.js
INFO [karma]: Karma v0.10.9 server started at http://localhost:****/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 33.0.1750 (Windows 7)]: Connected on socket ***************
Chrome 33.0.1750 (Windows 7) ERROR
Uncaught TypeError: Cannot set property 'mock' of undefined
at C:/Angello/javascripts/angular-mocks.js:17
Chrome 33.0.1750 (Windows 7): Executed 0 of 0 ERROR (0.465 secs / 0 secs)
各ファイルのバージョン1.0.7を使用する場合:
Your environment has been set up for using Node.js 0.10.26 (x64) and npm.
C:\Users\myUsername>karma start karma.conf.js
INFO [karma]: Karma v0.10.9 server started at http://localhost:****/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 33.0.1750 (Windows 7)]: Connected on socket ***************
Chrome 33.0.1750 (Windows 7) ERROR
Uncaught ReferenceError: angular is not defined
at C:/Angello/javascripts/angular-mocks.js:16
Chrome 33.0.1750 (Windows 7): Executed 0 of 0 ERROR (0.064 secs / 0 secs)
通常、これは、Angularのバージョンの競合、karma.conf.jsでのスクリプト定義の順序の誤り、不完全なインポート、または構文エラーが原因で発生します。
サービスをテストしていることがわかるので、そのサービスのjsファイルをファイルの下に含め(app.jsに埋め込まれていない場合)、置き忘れたコンマを削除します(以下を参照)。
files: [
'javascripts/angular.min.js',
'javascripts/angular-mocks.js',
'javascripts/app.js',
'<include your service js here>',
'tests/angelloModelSpec.js', <<-- and remove this trailing comma
],
問題を見つけました!私は間違った設定ファイルを編集していました! appディレクトリ内の設定ファイルを編集していましたが、実際の設定ファイルはC:\ Users\myUsername\karma.conf.jsにありました。
ご協力ありがとうございました!