軽くJavaScriptのテストをする用事があったので、QUnitを使う。
とりあえず最小コードでテスト。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>QUnit Example</title>
<link rel="stylesheet" href="//code.jquery.com/qunit/qunit-1.17.1.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="//code.jquery.com/qunit/qunit-1.17.1.js"></script>
<script>
QUnit.test( "hello test", function( assert ) {
assert.ok( 1 == "1", "通ったよ" );
assert.ok( 2 == "1", "通らないよ" );
} );
</script>
</body>
</html>
qunitとqunit-fixtureというIDのdiv要素を用意して、QUnit.testでassertを実行しています。
これをブラウザで表示すると、下記のように出力されます。
assertで「通らないよ」と書いた方は、2 == "1"としているので、もちろん引っかかってレッドになります。
手軽に使えて良いですね。
上記ではassert.okを使っていますが、assertには他にも関数が用意されています。
下記はassertのリファレンスです。
http://api.qunitjs.com/category/assert/
- ok(boolean判定でtrueであることを確認)
- equal(等しいことを確認)
- notEqual(等しくないことを確認)
- deepEqual(objectの中身が等しいかも確認できる)
- strictEqual(===と同じく型も含めて確認)
- async(非同期処理が終わるのを待つ)
手元のモジュールが正しく動作しているかを確認する分には、これくらいの機能があれば十分そうです。