テスティングの基礎

スポンサーリンク

焦点をしぼったテスト

例外をテストする

assert_raises() で例外発生を確認
assert_nothing_raised() で例外が発生しないことを確認

UnauthorizedAccess = Class.new(StandardError)
InvalidPassword = Class.new(StandardError)

のような形で、自作エラーをStandardErrorに登録できる。

テストケース全体を同時に実行する

分割したテストファイルも、Rakeを使えば簡単に行える

require"rake/testtask/"
task :default => [:test]
Rake::TestTask.new do|test|
test.libs << "test"
test.test_files = Dir["test/test_*.rb"]
test.verbose = true
end

実行するコマンド

rake test

  1. テストケースをアトミックにしておくこと。もし複数のインターフェイスのある関数をテストしているなら、複数のテストを書こう。また、テストしたいエッジケースごとにテストを書こう。
  2. 関数の入出力をチェックするだけでは駄目だ。また、適切な条件で例外が投げられること、あるいは想定外に例外が投げられることのないことをテストするために、assert_raises()とassert_nothing_rised()を使おう。
  3. テストケースの実行を自動化するために、rakeタスクを使おう。そして、統合時に問題が入り込んだらすぐに確実に見つけられるよう、変更するたびにすべてのテストを実行しよう。テストを個別に実行すると問題を早期に発見できて、時間の節約になるかもしれないが、機能から機能へ転るときには、テストケース全体を実行することが重要だ。

コメント

タイトルとURLをコピーしました