coffeescript +jasmine-node の例
coffeescript +jasmine-node で クラスの実装、テストをしていく環境を構築してみた。
github に上げてある。
https://github.com/katoy/triangle
node は 0.6.6 をつかっている。
俺の環境では coffee -c -w がエラー発生するので、cake で *.coffee -> *.js に compiel する
タスクを書いた。
ここで作成したクラスは
3辺の長さを与えたら、三角形の形状を判定 (正三角形、二等辺三角形、一般、三角形にならない)
するだけのものだ。
テストケースの設計はせずに 入力範囲空間の一部分 ([0..4]x[0..4]x[0..4])を網羅してテストしている。
こんな単純な関数でも、もして作業でテストしたら、バグが入っても捕捉することは困難だろう。
自動テスト環境を構築しておけば、一瞬で挙動の変化の発生有無をチェックすることが可能だ。
小さな web アプリを coffeescript + mongodb で作成すること計画している。
これは そのための準備体操である。
同等の機能のクラスを2通りで実装してある。
しかし、片方のクラスは、内部で整数の数値演算でオーバーフローが起こるような記述になっている。
そして、テストではオーバーフローが起こる状況をキャッチできている。
$ cake spec
NG
Started
...F....
Triangle_bad:最大 - 1
it x
overflow! a + b = 200, b + c = 200, c + a = 200
Finished in 0.04 seconds
8 tests, 1517 assertions, 1 failure
最近のコメント