On Wed, May 25, 2011 at 4:05 PM, Ken Egervari <ken.egerv...@gmail.com>wrote:

> Well, I've been getting rid of my Factory Girl for my controllers at least
> and I run 280 tests in about 1.5 seconds. To me, this is worth it as before
> it took 40-50 seconds. This is too much of a speed improvement to ignore I
> think.
>
> I am at a loss as to why Factory_girl takes so many cpu cycles to create a
> few objects per test. I have benchmarked a simple call to
> Factory.create(:user), and it takes .14 seconds to run.
>
> Even if you use Factory.build() though and it doesn't hit the database, it
> is STILL slow. I am at a loss as to how factory_girl cannot come close to
> the performance of manually instantiating the object yourself. Why is it so
> much slower? I'd have to look at their source code to know for sure.
>
> Honestly though, I have removed factory_girl completely from my controller
> tests and I am so thrilled. I have not really lost anything in terms of
> expressiveness.
>
> Sure, I have to add a pieces of data to make render_views comply, but it's
> not much. It is a *very small* price to pay for this much performance gain.
>
> Ken
>
>
>
> On Wed, May 25, 2011 at 5:45 PM, Justin Ko <jko...@gmail.com> wrote:
>
>>
>>
>> On Wed, May 25, 2011 at 1:00 PM, Ken Egervari <ken.egerv...@gmail.com>wrote:
>>
>>> I am using factory_girl, and I have discovered that it is chiefly
>>> responsible for making my tests run slow.
>>>
>>> I have posted a question about this on Stack Overflow:
>>>
>>>
>>> http://stackoverflow.com/questions/6128476/how-can-i-get-factory-girl-to-never-hit-the-database-if-i-am-calling-factory-buil
>>>
>>> Anyway, I was curious what you guys use to create Factories?
>>>
>>> 1. Do you put up with Factory_girl?
>>> 2. Did you configure Factory_girl differently to make it run faster?
>>> 3. Do you use something else? May I ask what?
>>>
>>> Thanks!
>>>
>>> Ken
>>>
>>> _______________________________________________
>>> rspec-users mailing list
>>> rspec-users@rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>
>>
>>
>> In Rails land, tests are "slow" because of the database. Sorry, but there
>> is just no way around it. Sure, you could mock everything out, but we all
>> know the implications of doing that...
>>
>> rspec-core has 691 examples and takes 2 seconds to run. That would be
>> amazing if we could have that for our Rails apps.
>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users


Can you please bottom post? It is easier to follow the conversation.

So, you're right. User.new vs. Factory.build(:user) should not be much
difference in speed. Factory.build(:user) will instaniate the user (and its
attributes) AND its associations, but should not be hitting the database. I
would bring this up with the factory_girl folks.
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to