On Mar 5, 2012, at 5:05 AM, Andrew Premdas wrote:

> 
> On 3 March 2012 21:55, Greg C. <li...@ruby-forum.com> wrote:
> Background:  So I have roughly:
> 
> class A
>   def calculate_input_datetimes
>      # do stuff to calculate datetimes - then for each one identified
>      process_datetimes(my_datetime_start, my_datetime_end)
>   end
> 
> My thoughts on this is that this method is fundamentally flawed as it is 
> working at two different levels of abstraction. The first is doing date 
> calculation using algorithms  and the second is delegating responsibility by 
> calling processing dates. Instead you should have a method that just 
> delegates e.g.
> 
> def foo
>    calculate_datetimes
>    process_datetimes
> end
> 
> Now your test for foo is all about it calling calculate... and then calling 
> process... with the results. (I'll leave it up to you to determine how you 
> pass the results.
> 
> The actual methods you delegate too now can be tested independently.
> 
> Your current tests are actually telling you this, because they want to do one 
> thing and then another and that is making them harder to implement

This. Your tests tell you so much about the implementation code. Hard to test? 
Bad design.

> 
> HTH
> 
> Andrew
>  
>   def process_datetimes(input_datetime_start, input_datetime_end)
>      # do stuff
>   end
> end
> 
> So:
> * I want to test that calculate_input_datetimes algorithms are working
> and calculating the correct datetimes to pass to process_datetimes
> * I know I can STUB out process_datetimes so that it's code won't be
> involved in the test
> 
> QUESTION:  How can I setup the rspec test however so I can specifically
> test that the correct datestimes were attempted to be passed over to
> process_datetimes,  So for a given spec test that process_datetimes was
> called three (3) times say with the following parameters passed:
> 
> * 2012-03-03T00:00:00+00:00, 2012-03-09T23:59:59+00:00
> * 2012-03-10T00:00:00+00:00, 2012-03-16T23:59:59+00:00
> * 2012-03-17T00:00:00+00:00, 2012-03-23T23:59:59+00:00
> 
> 
> thanks
> 
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
> 
> 
> 
> -- 
> ------------------------
> Andrew Premdas
> blog.andrew.premdas.org
> 
> _______________________________________________
> 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

Reply via email to