Проблема в том, что приспособления ужасны. Некоторое время назад я прочитал статью под названием The Lie , и она открыла мне глаза. Эта статья посвящена Машинисту , который я использовал и любил, но в настоящее время я предпочитаю factory_girl . Вот базовый пример из их README:
Вы определяете Фабрику с достаточным количеством значений по умолчанию для прохождения тестов:
# This will guess the User class
Factory.define :user do |u|
u.first_name 'John'
u.last_name 'Doe'
u.admin false
end
И тогда в ваших тестах вы можете переопределять или добавлять значения по мере необходимости (придуманный пример RSpec)
describe User, "#is_admin?" do
before(:each) do
@user = Factory(:user, :admin => true, :email => 'jdoe@email.com')
end
it "should be true"
@user.is_admin?.should be_true
end
end
@user
теперь является реальной, работающей, работающей моделью ActiveRecord, которая (временно) живет в тестовой базе данных. Вы также можете использовать фабрики в тестах контроллеров. Вы могли бы издеваться над ними, но в моем ограниченном опыте усилия не стоят незначительного прироста производительности. В основном я прикалываюсь, когда мне нужно проверить условие (save
возвращает false, даже если запись действительна, чтобы я мог проверить условие сбоя).
После использования двух библиотек, упомянутых здесь, вы не можете заплатить мне, чтобы я снова использовал приборы.