私は次のテストを書いています:
let!(:city_areas) { FactoryGirl.create_list(:city_area, 30) }
before {
@city_areas = mock_model(CityArea)
CityArea.should_receive(:where).and_return(city_areas)
}
it 'should assign the proper value to city areas variable' do
get :get_edit_and_update_vars
assigns(:city_areas).should eq(city_areas.order("name ASC"))
end
次のメソッドをテストします。
def get_edit_and_update_vars
@city_areas = CityArea.where("city_id = '#{@bar.city_id}'").order("name ASC").all
end
ただし、nil:NilClass のメソッド「city_id」がないと言って失敗し、インスタンス変数 @bar をまだ使用しようとしていると思われます。
これを防ぐために、この where ステートメントを適切にスタブするにはどうすればよいですか?