8

Angular アプリのテスト方法を学び始めたところ、いくつかの問題に遭遇しました。

Yeoman を使用して Angular アプリを生成しました。yo angular --minsafe AppName

次に、サービスを生成しましたyo angular:service MyService

すべてが機能していることを確認するためだけに、サービスの簡単なメソッドとそのテストを作成しました。私は実行grunt testし、テストに合格しました。

を使用してミックスにアンダースコアをbower install underscore追加<script>し、index.html. _.map([1,2,3], function(el){return el+1});次に、Underscore が機能しているかどうかを確認するために、簡単なコードをサービス メソッドに追加しました。

私はもう一度テストを実行しましたがgrunt test、そう言って失敗しました_ is not defined

Underscore は window オブジェクトに _ 変数をアタッチするので、テストに使用できると思いました。私が間違っている?

また、ブラウザでアプリケーションを実行したところ、アンダースコアが定義され、機能していました。

私の質問は、Underscore を使用する Angular アプリをどのようにテストするのですか? これは一般的な問題ですか、それとも何か間違っていますか?

ありがとう、ペタル

4

2 に答える 2

9

Yeoman によって生成されたkarma.conf.jsファイルを見ると、bower コンポーネントが自動的に追加されていないことがわかります。

// list of files / patterns to load in the browser
files = [
  JASMINE,
  JASMINE_ADAPTER,
  'app/bower_components/angular/angular.js',
  'app/bower_components/angular-mocks/angular-mocks.js',
  'app/scripts/*.js',
  'app/scripts/**/*.js',
  'test/mock/**/*.js',
  'test/spec/**/*.js'
];

アンダースコア フォルダーを追加するだけで、問題は発生しません。

于 2013-09-18T21:11:09.600 に答える
1

JASMINEorのような定数の使用JASMINE_ADAPTERは、2.0 より前の Jasmine バージョンでは非推奨です。代わりframeworks: ['jasmine']にファイルで使用してください。karma.conf.js

于 2014-05-22T13:36:02.850 に答える