Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

javascriptでイベントのテスト

というわけでイベントのテストも書いてるわけだけど書いててちょっとめんどいなとか。
というかjavascriptのテストに関する情報って少ないよね。
今はこれをひたすら書いてる。

function testAddEvent1(){
  this.value = 0;
  var func = function(evt){
    this.value = 1;
  }
  Kumu.Event.addEvent('test', 'click', func.bindScope(this), false);
  $i('test').click();
  assertEquals(this.value, 1);     
}

こんな感じ。

  this.value = 0;
  var func = function(evt){
    this.value = 1;
  }

テスト用のコールバック関数を用意する時点でめんどいね。
イベント系はMock的なものをなんか用意した方がええのかな?
続き。
コールバックが正しく呼ばれていればvalueが1になるはずですよと。
イベントをclick()で呼ばないといかんのがなんだかめんどい。
(仕方ないよね?)

function testUnload2(){
  this.value = 0;
  var func = function(evt){
    this.value = 1;
  }
  Kumu.Event.addEvent('test', 'click', func.bindScope(this), false);
  Kumu.Event.unloadEvent();
  $i('test').click();
  assertEquals(this.value, 0);
}

unloadしてるのでイベント割り付けがなくなってますよと。
cacheに残ってるか残ってないかじゃなくて実際にクリックしてみて評価しないといかんので。

  $i('test').click();

毎回コレを呼ぶわけだ。
うん。やっぱり仕方ないか。
まあ実はOperaではこのコードが動かないんだけどね。
(テストコードがうまく動かない)
どうもthis周りがうまく取れないようだ。

var o = {
//・・・
}

ってちゃんとやってあげないといかんかも。
であれば外に書いてしまうか。
うくく。