お世話になります。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が返却されているようです。
皆様のお知恵をお貸し頂ければ幸いです。よろしくお願いします。