1
我想在我的茉莉花測試套件如何在Jasmine中模擬DOM元素,使控制器可以訪問它?
it('Test changing radio', function() {
testElement = angular.element("<div><input class='my_radio' type='radio' /></div>");
testElement.find('input')[0].checked = true;
var scope = $rootScope.$new();
$compile(testElement)(scope);
scope.$digest();
console.log(testElement.find('input')[0].checked); // should print true
myController.changeRadio();
console.log(testElement.find('input')[0].checked); // should print false
});
嘲笑DOM元素在我的控制器
function changeRadio(){
for(var i = 0; i < angular.element('.testElement').length; i++){
angular.element('testElement')[i].checked = false;
}
}
控制檯日誌應返回以下
true
false
由於myController.changeRadio
改變無線電按鈕從真到假,我證實,當運行我的應用程序它的作品,但茉莉花測試套件沒有工作。我發現控制器根本找不到輸入元素。在測試過程中,有沒有辦法將$compiled
DOM傳遞給控制器?
從角度控制器中剔除html元素是一個壞主意,而您可以使用角度綁定 –