WSHの単体テストフレームワークは
なに?
WSH対応のxUnitテストフレームワークに、ScriptUnitというのがあった。
試してないがVBScriptでも使えるみたいだ。
WSHのスクリプト言語であるJScriptには、外部ファイルをインクルードする関数は存在しない。
普段はクラスを単体のjsファイルに記述して、wsfファイルでまとめてインクルードしていたが、このテストユニットでは使えない。
なので、クラスファイルをロードする為に、ActiveXのFSOを使用して外部ファイルを読み込み、eval関数でクラスをロードする関数をテストの始めに書いた。
あとはGUIフォームからテスト用のjsファイルを読み込めばいい、非常に簡単だ。
実行したテストコード
// クラスロード関数 function loadFile(filePath) { var fso = new ActiveXObject('Scripting.FileSystemObject'); return fso.OpenTextFile(filePath).readAll(); } // フルパス表記でクラスファイルをロードする eval(loadFile('C:\\tmp\\wsh\\Hoge.js')); // コンストラクタで指定した名前を返します。 function testGetName() { var hoge = new Hoge('hoge'); Assert.Equals(hoge.getName(), 'hoge'); }