5

Angular.js + Jasmine を使用してイスタンブール コード カバレッジ ツールを実行する際に問題が発生しました。私は Coffeescript でコーディングしていますが、Instanbul ではまだサポートされていないため、保存のたびにソースが JS に変換されます。

基本的に、ここではテストとテスト済みコードの関係はわかりません。単体テストがまったくないファイルでも 66% のカバレッジが得られるためです。これはまったく意味がありません。

タイトルで述べたように、テスト ランナーとして Karma を使用していますが、コマンド ラインでも同じ結果が得られます。

Angular.js コントローラーの例 (コンパイル済みの .coffee):

'use strict';
angular.module('app.controllers').controller('HelpIndexCtrl', [
  '$scope', function($scope) {
    return $scope.foo = 'bar';
  }
]);

そして単体テスト:

'use strict'
describe "controllers", ->
  beforeEach angular.mock.module "app.controllers"
  scope = rootScope = {}
  describe "HelpIndexCtrl", -> inject ($controller)->
    ctrl = $controller 'HelpIndexCtrl', $scope:scope
    it 'should have working scope', ->
      expect(scope.foo).toBe 'bar'

一般的なカバレッジ結果

コントローラーの例

コントローラーの例

4

1 に答える 1