0

AngularJS アプリケーションをテストするという概念に頭を悩ませることができないようです。

IDE として PHPstorm を使用し、node.js とノードを介してカルマを正常にインストールしました。

次に、karma.config ファイルを作成しました。

  module.exports = function(config) {
config.set({
  basePath: '',
  frameworks: ['jasmine'],
  files: [
      'js/angular.js',
      'js/va.angular.js',
    'test/**/**/*Spec.js'
  ],
  exclude: [

  ],
  reporters: ['progress'],
  port: 9876,
  colors: true,
  logLevel: config.LOG_INFO,
  autoWatch: false,
  browsers: ['C:/Program Files (x86)/Google/Chrome/Application/chrome.exe'],
  captureTimeout: 60000,
  singleRun: false
});
};

テストファイルも作成しました:

// mainSpec.js
describe('controllers', function(){
beforeEach(angular.module('va'));

it('should friggin test something', inject(function() {
    var x = 5;
    expect(x.toBe(5));
}));
});

ただし、テストを実行しようとすると、次の理由で失敗します。

TypeError: Object #<Object> has no method 'apply'
TypeError: Object 5 has no method 'toBe'

今、私は2つの質問があります:

  • ここで何が間違っていますか?
  • カルマはどこからジャスミンのものを得るのですか? 私にはそれが得られないように見えます。
4

1 に答える 1

4

angular-mocks.jsロードするファイルのリストにモジュールが含まれていることを確認してください。

カルマ構成で指定するframeworks: ['jasmine']と、ジャスミンが含まれるため、自分で含める必要はありません。

あなたのエラーに関しては、

expect(x.toBe(5))

次のようにする必要があります。

expect(x).toBe(5)
于 2013-11-01T20:35:23.503 に答える