2012年8月26日日曜日

JsTestDriverでDOM操作を行うための妄想(その2)

妄想に取り付かれると、無敵のキラ様に殺されたりする。

さっきの続き。

JsTestDriverでDOM操作のテストを実行するには
・DOM API(docment.~とかJQueryのものとか)をつかう。
・ 【/*:DOC foo = <div><p>foo</p></div>*/】って擬似DOMにアクセスする
の2パターン存在する。
その他のjs単体テストモジュールと違い、静的なhtmlファイルを参照したりすることは
できない(あくまで現時点では)。
オプションでいかにも静的なhtmlを参照できるかのような物が存在するが、
あれは非同期通信の時などに参照するためのものであって、決して
DOMテスト用ではない。引っかからないように。

まだきちんと試せたわけではないが、後者はthisの扱いがちょっとおかしい。
理由として、jsでthisといえば、
・イベントが発生している時はその発生もとのコンポーネント
・そうでないときは自分自身(クラスとか)
だったりするが、JsTestDriver的にはthisは【:DOC foo】で指定した要素を指してしまう
ので、挙動がおかしかったりする。

そんな感じで怖いから、前者を使いたい。

とはいうものの、今度はそのDOM APIがめんどくさくなってくる。
解決方法としては、seleniumと連携して、htmlを取得し、そのhtmlを解析してDOM APIに置換。
testjs自体に結果をインサートして使用するとかになるのかな。

そんなめんどくさいことしなきゃ

0 件のコメント:

コメントを投稿