document.write()
JavaScriptとCSSをロードするタグを挿入して、DOMを変更するために 使用する2つのユーティリティ関数があります。
QUnitを使用して、テスト結果ページの実際のDOMに影響を与えることなく、インジェクションが正しく行われていることをテストすることは可能ですか?
私は出来ます:
私が定義する関数になるように
document.write()
、おそらくで上書きしsetup
てリセットします。teardown
しかし、彼らは私が彼らがすることになっていることをするための呼び出しをテストしてdocument.write()
いません。js-test-driverのようなものを使用して、コマンドラインからJavaScriptを実行します(ただし、テスト結果ページを利用できるようにしたいのですが)。
これらのユーティリティテスト専用に別のテスト結果ページを作成して、これらの結果が他のテストに影響を与えないようにします(ただし、実際には単一の統合ページが必要です)。
ユーティリティ関数に空のJSファイルとCSSファイルを渡してロードし、実際に結果ページに影響を与えないようにします。
だから私には選択肢があります。
しかし、私が本当に望んdocument
でいるのは、実際の現在のドキュメント以外のドキュメントにすることです。これが可能かどうかはわかりません。(実際、それが意味をなすかどうかさえわかりません。)これは可能ですか?iframeなどでできるかもしれません。
それがまったく役立つ場合は、単体テストしたい関数のタイプの例を次に示します。
function(jsFile){
document.write('<script type="text/javascript" src="'+jsFile+'"></script>');
}