я решил попробовать использовать пни, потому что я слышал, что они будут делать мои тесты работают быстрее:погасили спецификация занимает больше времени, чтобы запустить
Они пошли от этого:
it "should create a new instance given a valid attribute" do
User.create!(@attr)
end
it "should require a name" do
no_name_user = User.new(@attr.merge(:name => ""))
no_name_user.should_not be_valid
end
it "should require an email address" do
no_email_user = User.new(@attr.merge(:email => ""))
no_email_user.should_not be_valid
end
Для этого:
it "should create a new instance given a valid attribute" do
user = FactoryGirl.build_stubbed(:user, @attr)
user.should be_valid
end
it "should require a name" do
no_name_user = FactoryGirl.build_stubbed(:user, @attr.merge(:name => ""))
no_name_user.should_not be_valid
end
it "should require an email address" do
no_email_user = FactoryGirl.build_stubbed(:user, @attr.merge(:email => ""))
no_email_user.should_not be_valid
end
Но возьмите 10 секунд больше времени на прогон. Весь мой пакет занимает всего 5 минут. Я ожидал ускорения скорости от этого.
'build_stubbed' не может победить' новый', но определенно побеждает db hits – apneadiving
У вас есть какие-либо ассоциации в вашей модели? См. Http://blog.spoolz.com/2012/07/09/small-revelation-factorygirl-build_stubbed-associations-and-let/ –
Спасибо за ваш коллективный совет и ссылку. – stephenmurdoch