On 14 Oct 2009, at 20:49, Scott Taylor wrote:
On Oct 14, 2009, at 3:36 PM, Joaquin Rivera Padron wrote:

private
def complex_method...
def other_complex_methods ...

and the two complex methods can get really tricky to get right, I would like to be able to write specs for them, how do you do that? I mean I cannot do:

object.some_private_method

You have a few options:

1. Make the method public in the object you are testing
2. Make the method public in the test case
3. Don't test the method
4. Use __send__ or (send) to call it.
5. Refactor private methods to a new object, and make the methods public in that object.

Most of those options suck (esp. 1, 2, 3, & 4) - usually it represents a design flaw (you are doing too much in your class).

I'm with Scott, this usually indicates a design flaw, and 5 is usually the solution. The clue is in the names you gave them - you shouldn't have complex methods, especially private ones.

Can you post any of the code so we can see where the complexity/ problem is?

Ashley

--
http://www.patchspace.co.uk/
http://www.linkedin.com/in/ashleymoran
http://aviewfromafar.net/







_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to