如何使用 Jasmine 测试嵌套的 ng-click
How to test nested ng-click using Jasmine
我有一个 HTML 是这样的:
<li ng-show="obj.displayTab" role="tab">
<a tabindex="0" ng-click="abc($event)">
NAME
<div id="stdCloseButton" tabindex="0" role="button" ng-click="xyz()">
PIC
</div>
</a>
在 Jasmine 测试中,我想装配 xyz()
,但即使我到达嵌套 div
并触发点击事件,它仍然会触发 abc()
。
var closeDiv = testElement.find( '#stdCloseButton' ).first();
angular.element( closeDiv).click();
不知道该去哪里。感谢帮助。
您的HTML无效。按照设计,内联元素(如 anchor
)不能包含块元素(如 div
),反之亦然。您无法对此进行测试的事实表明此处可能存在其他问题。考虑改用以下有效的 HTML。
<li ng-show="obj.displayTab" role="tab">
<a tabindex="0" ng-click="abc($event)">
NAME
</a>
<div id="stdCloseButton" tabindex="1" role="button" ng-click="xyz()">
PIC
</div>
</li>
我有一个 HTML 是这样的:
<li ng-show="obj.displayTab" role="tab">
<a tabindex="0" ng-click="abc($event)">
NAME
<div id="stdCloseButton" tabindex="0" role="button" ng-click="xyz()">
PIC
</div>
</a>
在 Jasmine 测试中,我想装配 xyz()
,但即使我到达嵌套 div
并触发点击事件,它仍然会触发 abc()
。
var closeDiv = testElement.find( '#stdCloseButton' ).first();
angular.element( closeDiv).click();
不知道该去哪里。感谢帮助。
您的HTML无效。按照设计,内联元素(如 anchor
)不能包含块元素(如 div
),反之亦然。您无法对此进行测试的事实表明此处可能存在其他问题。考虑改用以下有效的 HTML。
<li ng-show="obj.displayTab" role="tab">
<a tabindex="0" ng-click="abc($event)">
NAME
</a>
<div id="stdCloseButton" tabindex="1" role="button" ng-click="xyz()">
PIC
</div>
</li>