技術的なエントリです。そこはかとなくハマりまして・・。
グローバルな領域を書き換えたりDBをごにょごにょするテストを実行すると成功したり失敗したり。明らかにテストが非同期で実行されておりまして、では順番に丁寧に実行するにはどうすればいいのかという話。
test()メソッド
asyncTest()メソッド
qunitではテストを実行するためにtest()メソッドとasyncTest()メソッドが用意されておりまして、
- test()メソッドは与えられた関数を非同期に実行
- asyncTest()メソッドは与えられた関数内でstart()メソッドが実行されるのを待って次のテストを実行
という仕様になっています。
別途次のテストの実行をstart()メソッドが実行されるまで待機させるstop()メソッドというものが用意されていますが、いまのところ使い道がピンときていませんのでここでは割愛します。
qunitの全容については以下のエントリに詳しいです。私がハマった箇所についても言及されています。
本家はこちら
QUnit - jQuery JavaScript Library