2013-08-01 11 views
10

Ben araç ipucunuAngularJS birim testlerinde DOM'a nasıl div eklenir?

var bodyoffset = document.querySelector(".smallcontainer-content").getBoundingClientRect(); 
var width = elm.width(); 
if(bodyoffset != undefined){ 
    var tooltipDiv = document.querySelector(".tooltip"); 
    angular.element(tooltipDiv).css("top", offset.top-bodyoffset.top+"px"); 
    angular.element(tooltipDiv).css("left", offset.left-bodyoffset.left+width+5+"px"); 
} 

Bu div class 'smallcontainer' yok olduğu gibi bir birim testinde çalışmıyor yerleştirmek için bir direktif aşağıdaki kodu kullanıyorum. Tüm fonksiyonlarımı test edebilmem için divun birim testinde yaratıldığından nasıl emin olabilirim?

cevap

14

Bu ben bunu nasıl başardığını geçerli:. Belgeye html ekler burada

beforeEach(inject(
    ['$compile','$rootScope', function(_$compile_) { 
     var html = '<div class="smallcontainer-content"></div>'; 
     angular.element(document.body).append(html); 
     elm = angular.element('<form name="form"><input name="password" id="passwordInput" data-ng-model="password" size="25" type="password" maxlength="20" tabindex="1" autofocus data-my-password-check></form>'); 
     $compile(elm)($rootScope); 
     form = $rootScope.form; 

    }] 
)); 

önemli bir parçası angular.element() 'dir ekler().

Bunu, şu örnek incelemenin ortasında bulabilirsiniz: http://www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-karma.html#testing-filters