私はしばらくの間、単体テストを JavaScript 開発に統合するつもりでしたが、デバッグとテストに firebug を使用することにすでに慣れているため、当然ながら JS 単体テストを行うには fireunit を選択しました。
fireunit の使用方法は理解していますが、実用的かつ効果的に使用する方法についてはまだ混乱しています。私の主な懸念は、DOM を実際に操作する機能をテストできないことです。
たとえば、次のような関数があるとします。
function() {
var el = document.getElementById('el');
if(el) {
el.parentNode.removeChild(el); //Removes the child from the DOM
}
}
これは基本的な例ですが、関数を使用するには DOM と対話する必要があります。要素を含む HTML がロードされていないときに、これを単体テストするにはどうすればよいですか?!
私は jsTestDriver にあまり詳しくありませんが、私の理解では、コメントを使用して単体テストに HTML を追加することができます (または、とにかくコードがどのように見えるか)。fireunit テストでこのようなことを行う方法はありますか? それとも、test.html をあらゆる場所からのコードのスニペットで雑然とさせて、それらが競合しないことを願っているのでしょうか。関数の開始時にロードされ、テスト関数が完了するとそれ自体を削除して次の関数に移動する HTML の小さな断片を定義するとよいでしょう。
innerHTML を使用してスニペットをテスト DIV にロードおよびアンロードするなど、いくつかのアイデアがありますが、私のアプローチはすべて不潔に見え、テスト関数ごとに大量のボイラープレートを作成する必要があります。より効率的な解決策をすでに思いついたかもしれない数人の人の意見を聞きたいです。