[Ruby] Ruby と ユニットテスト
現在、教育を行っているお客さまでは Java ではなく Ruby を使っています。
上に書いたようにテスト駆動開発で行っているのですが、全クラスのテストが通ったので予め用意していたメインプログラムを起動してみました。しかし、正しく動作しませんでした ^^;
調べていくと、あるメソッドに渡す引数が本来 self であるべきところに 文字列 を渡していました。
実は、私の作ったテストコードに抜けがあったのです。
このテストコードは前回 Javaで講習した際に作ったものを単純に Ruby に置換えたものです。
Java は型が あるので、 public void hoge(String s) というメソッドには 文字列(String) 以外の型を渡そうとするとコンパイルエラーになります。
しかし、Ruby では型は実行時に決まるので、場合によっては違う型の引数を渡している(しかもエラーとならない)場合があります。
したがって、Rubyの場合はユニットテストで引数や戻り値の型が違うことがあるという前提で、テストケースを追加する必要があるようです。