6

<custom-directive>replace:trueと を持っていtemplate: '<img />'ます。ユニットテストを書くにはどうすればよいですか?custom-directive が実際に img に置き換えられることをテストしたいと思います。

it('should be transformed to <img>', function(){
  var elm = $compile('<custom-directive></custom-directive>')(scope);
  scope.$digest();

  var t = elm.find('img'); // wrong! it replaces the element. it won't find another one inside
 //expect(elm).toBeAnImgElement ?
});

正しいマッチャーが見つかりません。私が見た最も近いケースは、コンテンツ (elm.html()またはelm.text()) をチェックすることですが、私のタグは空です。

4

2 に答える 2

18

次のような div でディレクティブをラップします。

describe('Directive: custom', function () {
  beforeEach(module('App'));

  var element, $scope;

  it('should be transformed to <img>', inject(function ($rootScope, $compile) {
    $scope = $rootScope.$new();
    element = angular.element('<div><custom-directive></custom-directive></div>');
    element = $compile(element)($scope);

    expect(element.children('img').length).toBe(1);
  }));
});
于 2013-05-04T06:26:39.060 に答える