У меня есть следующие функции поиска, определенные в моей модели:Правильный способ передать индекс Params теста Rspec
class CoffeeType < ActiveRecord::Base
has_many :coffee_items
def self.search(search)
if search
where('name LIKE ?', "%#{search}")
else
where(nil)
end
end
end
и имеет следующий RSpec тест:
describe "GET index with serach params" do
it 'renders a list of Coffee Types' do
get :index, {search: "Ame"}, valid_session
assigns(:coffee_types).count.should eq(2)
end
end
Это, вероятно, в значительной степени тривиальной и я не вижу более широкой картины здесь.
Вы используете заводы или посев ваших тестовой базы данных? – trh
@trh: Нет Я не –
Расхождение между консолью и тестом связано с тем, что когда вы запускаете консоль, если вы не передаете 'RAILS_ENV = test', вы используете базу данных разработки. Запуск тестов будет использовать совершенно другую базу данных (для среды 'test'), поэтому вы получаете 0 результатов, потому что в этой базе данных нет' coffee_types'. – gregates