Mój <custom-directive>
ma replace:true
i template: '<img />'
. Jak mogę napisać test jednostkowy? Myślę, że chcę przetestować, czy faktycznie zastępuje on dyrektywę niestandardową img.AngularJS przetestuj dyrektywę z zamień na true
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 ?
});
Nie mogę znaleźć poprawnego matchera. Najbliższy przypadek, jaki widziałem, to sprawdzenie zawartości (elm.html()
lub elm.text()
), ale mój tag jest pusty.
Dlaczego musimy '$ rootScope $ Digest();' tutaj.? Rzeczywiście, bez niego nie działa, ale nie rozumiem dlaczego. – thorn
@thorn: Tak, to nie jest wymagane. – codef0rmer
Nie, jest. Jak napisałem, nie działa bez niego. – thorn