Ruby on Rails (3.x >= 3.2.9) のためのブログです (どっちかというと社内ブログ的な感じで、基礎から書いてきます) 。
12月
10
Comments

Unit Testは、以下のコマンドで実行できます。

# test/units 以下ファイルすべてをテスト
$rake test:units
# 指定したファイルのみテスト
$rake test:units TEST=[テストするスクリプトへのパス]


① まず最初にテスト用のデータベースを作成


# 現在のschema.rbの情報をもとにテストDB作成
$ rake db:test:load
# テストDBの削除は以下のコマンド
$ rake db:test:purge
# (他にもいくつか作成用コマンドがあります)

ちなみに、texture で記述したテストデータが展開されます。


② テストの内容を作成


たとえば、userモデルのスクリプトのテストをしてみることにします。
そのために、まずテスト用のスクリプトを編集します。model を作成した際に、test/unit 以下に user_test.rb が作成されているはずです。デフォルトでは以下の様なコードになっています。
  1. # test/unit/user_test.rb  
  2. require 'test_helper'  
  3.   
  4. class UserTest < ActiveSupport::TestCase  
  5.   # test "the truth" do  
  6.   #   assert true  
  7.   # end  
  8. end  

これを、編集します (例えば以下)
  1. # test/unit/user_test.rb  
  2. require 'test_helper'  
  3.   
  4. class UserTest < ActiveSupport::TestCase  
  5.     
  6.   def setup  
  7.     # テストメソッドの実行前に行いたい内容を記述  
  8.     # texture の読込のような、リソースの初期化など  
  9.     # e.g.) @u = users(:user1)  
  10.   end  
  11.   
  12.   def teardown  
  13.     # テストメソッドの実行後に行いたい内容を記述  
  14.     # リソースの破棄など  
  15.     # e.g.) @u = nil  
  16.   end  
  17.   
  18.   test "user save" do  
  19.     user = User.new({  
  20.       :name => 'ユーザー1',  
  21.       :email => 'test@example.com'  
  22.     })  
  23.     assert user.save, "ユーザーの保存に失敗しました"  
  24.   end  
  25. end  
※1 ここで、test の後の "user save" はテストの名前で、一意な名前で指定
※2 setup は、テストメソッドの実行前に呼び出される
※3 teardown は、テストメソッドの実行後に呼び出される

assert文は、処理結果が正しいかチェックするためのメソッドです。
様々な種類のチェック用メソッドがありますが、それは[ユニットテストで使うメソッド | Railsドキュメント]を参考にすると良いと思います。


③ テストを実行


この様に、テストスクリプトを書いたら、冒頭に記述したコマンドを打てばテストを実行できます。
$rake test:units TEST=test/unit/user_test.rb

Categories: , , , ,

Leave a Reply