我正在使用Angular的应用程序.
我目前有一个删除按钮,附有确认 onClick()
<a class="delete button" href="#" onClick="return confirm('Are you absolutely sure you want to delete?')" ng-click="remove_user(user, $event)" ></a>
Run Code Online (Sandbox Code Playgroud)
问题是当确认弹出时,"确定"和"取消"都删除了该项目,我想要取消"取消"以简单取消?
我有一个Angularjs应用程序,在执行某些操作之前使用简单的javascript确认.
function TokenController($scope) {
$scope.token = 'sampleToken';
$scope.newToken = function() {
if (confirm("Are you sure you want to change the token?") == true) {
$scope.token = 'modifiedToken';
}
};
}
Run Code Online (Sandbox Code Playgroud)
<div id="tokenDiv">
Token:{{token}} <button ng-click="newToken()">New Token</button>
</div>
Run Code Online (Sandbox Code Playgroud)
现在我想要进行端到端测试以检查在视图中是否正确替换了令牌.如何拦截javascript.confirm()
呼叫,以便它不会停止执行测试?
it('should be able to generate new token', function () {
var oldValues = element('#tokenDiv').text();
element('button[ng-click="newToken()"]').click(); // Here the javascript confirm box pops up.
expect(element('#tokenDiv').text()).not.toBe(oldValues);
});
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试重新定义window.confirm
函数,但实际的调用抱怨它是未定义的.
我也想设置一个Jasmine间谍,window.confirm
但是在下面的语法中,spyOn(window, 'confirm');
它给了我一个错误,说你不能窥探null …