いくつかのアクションを実行する前に、単純な javascript 確認を使用するAngularjsアプリケーションがあります。
コントローラ:
function TokenController($scope) {
$scope.token = 'sampleToken';
$scope.newToken = function() {
if (confirm("Are you sure you want to change the token?") == true) {
$scope.token = 'modifiedToken';
}
};
}
意見:
<div id="tokenDiv">
Token:{{token}} <button ng-click="newToken()">New Token</button>
</div>
ここで、トークンがビューで正しく置き換えられていることを確認するためのエンド ツー エンド テストが必要です。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);
});
これまでのところ、window.confirm
関数を再定義しようとしましたが、実際の呼び出しは未定義であると不平を言っています。
また、Jasmine スパイをセットアップしたかったwindow.confirm
のですが、次の構文spyOn(window, 'confirm');
では、スパイできないというエラーが表示されnull
ます。
そのようなテストを機能させるにはどうすればよいですか?