いまさらだけどjsUnitやってみた
ちなみに*Unit系はjava用とかPHP用とかを大昔にちょっと試した程度。
テスト駆動開発とか全然経験なし。
とりあえず本家サイトいってjsUnit2.2をダウンロード。
ZIPを解凍してWeb公開領域に設置。
テスト対象は、文字列を連結するクラスでも作ってみることにした。
javaのStringBuilderみたいなの。
インスタンス作ったら、どんどん追加して、文字列化ーみたいな感じ。
で、とりあえずテストケースを書く。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="/jsunit/app/jsUnitCore.js"></script> <script type="text/javascript" src="/js/StringBuilder.js"></script> <script type="text/javascript"> function test_Add() { try { var sb = new StringBuilder(); sb.add('aaa'); } catch(ex) { fail('add method test failed'); } } function test_toString() { var sb = new StringBuilder(); sb.add('aaa'); sb.add('bbb'); sb.add('ccc'); assertEquals(sb.toString(), 'aaabbbccc'); } </script> <title>StringBuilder Test</title> </head> <body> </body> </html>
これをStringBulder_test.htmlとして保存。
テストランナー(http://localhost/jsunit/testRunner.html)をブラウザで開いて、
URL欄にテストケースのURL(localhost/test/StringBuilder_test.html)を入力。
RUNボタンおしてみる。エラーになる。真っ赤なライン。
肝心のJavascriptのほうを作る。
function StringBuilder() { this.init.apply(this, arguments); } StringBuilder.prototype = { init : function() { this._seq = []; }, add : function(s) { this._seq[this._seq.length] = s; }, toString : function() { return this._seq.join(''); } };
StringBuilder.jsとして保存。
で、もう一度テストランナーを実行する。今度は成功。緑のライン。
やりかた的にはこんなんであってるのかな。
テストケースが充分なのかの判断がまだよくわかんない。