Thank you very much to Adam, Ben and Rob,
Your answers each helped me to better understand things I can do when
testing. I ended up going with Ben's approach, which also helped with my
confusion over defining a factory as only one object.
As to the complexity of the data structure and breaking the test down
more...I wish I could, but I'm working with a code base with a data
structure I'm not at liberty (nor experienced enough) to change/make more
efficient, and the method that needs to be tested requires all of these
things at a minimum. It does feel overly complicated to me though too...
Again, thanks so much for all of your help!
Megan
On Monday, August 18, 2014 11:22:04 AM UTC-7, Megan Byrne wrote:
>
> Hello all,
>
> I'm relatively new to testing and this has been tripping me up for a bit.
>
> I'm working in a code base that contains a Calendar Model (only contains a
> date field) which is used to help find other data from models with an SQL
> join for relevant date-ranges.
>
> I need to create a FactoryGirl factory which will be about 10 days worth
> of sequential dates (10 days back from whatever today's date is) so that I
> can use that to help test a method on another model which needs to join
> with the Calendar dates in order to find what it needs.
>
> So, the problem is that I cannot seem to figure out how to create a
> factory that loops through a set range of things. Using sequence doesn't
> seem to work with a range and the blocks I've been using are just plain
> wrong. Please help.
>
> I've been doing things like:
>
>
> FactoryGirl.define
> factory :calander do
> factory :dates do |d|
> 10.times do
> d = 10
> date {d.days.ago}
> d -= 1
> end
> end
> end
> end
>
> but this is clearly wrong...I guess I'm very confused about FactoryGirl in
> general
>
> Any help is greatly appreciated,
>
> Megan
>
--
--
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
---
You received this message because you are subscribed to the Google Groups "SD
Ruby" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.