rails:2812
From: "Yanagisawa" <y_yanagisawa@m...>
Date: Mon, 14 Jul 2008 18:48:34 +0900
Subject: [rails:2812] 検索機能のfunctionテストにてnilが返却されてしまう。
お世話になります。Railsを勉強中の柳澤と申します。
現在、検索画面のfunctionテストを行っているのですが、予想外のnilが返却されてしまいErrorとなってしまいます。
検証したいテストは、検索条件に合致する件数を取得し、件数が予想している値と一致するというものです。
テストの対象のcontroller.rbとtest.rbはそれぞれ下記の通りです。
*controller.rbの内容
def search
@keyword = params[:searchword]
if @keyword.blank?
flash.now[:warning] = '検索条件が入力されていません!!'
end
conditions = ['group_id like ? or group_nm like ?', @keyword,
"%#{@keyword}%" ]
@group_masters = GroupMaster.find(:all,
:order => 'group_id', :conditions => conditions)
render :action =>'search'
end
*test.rbの内容
def test_search
@group_masters = post :search, :searchword => "100"
@group_masters.reload
assert_equal 1, @group_masters.length
end
*DBのセットアップ内容は下記の通りです。
one:
id: 1
group_id: 100
group_nm: A
del_flg: 0
ins_user: 999999
upd_user: 999999
created_at: <%= Time.now.strftime("%Y-%m-%d %H:%M:%d") %>
updated_at: <%= Time.now.strftime("%Y-%m-%d %H:%M:%d") %>
*出力されたエラーメッセージは下記の通りです。
1) Error:
test_search(GroupMastersControllerTest):
NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.reload
./test/functional/group_masters_controller_test.rb:49:in `test_search'
自分としては、検索条件に合致する1レコードを取得できると考えていたのですが、nilが返却されているようです。
皆様のお知恵をお貸し頂ければ幸いです。よろしくお願いします。
-> @ 2812 2008-07-14 11:48 [y_yanagisawa@m... ] 検索機能のfunctionテストにてnilが返却されてしまう。 2813 2008-07-14 12:52 ┗[rudeboyjet@g... ] 2814 2008-07-14 13:39 ┗[y_yanagisawa@m... ] 2815 2008-07-15 06:46 ┗[someeda@g... ] 2816 2008-07-15 09:43 ┗[y_yanagisawa@m... ]