[rspec-users] spec-ing private methods?

Matt Wynne matt at mattwynne.net
Wed Oct 14 17:48:35 EDT 2009


On 14 Oct 2009, at 22:33, Matt Wynne wrote:

>
> On 14 Oct 2009, at 20:49, Scott Taylor wrote:
>
>> On Oct 14, 2009, at 3:36 PM, Joaquin Rivera Padron wrote:
>>
>>> hello there,
>>> how do you tipically spec private methods? The thing is Ï have  
>>> something like this:
>>
>> 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).
>
> Yup. Sprout class[1] works for me, every single time.
>
> [1]http://xunitpatterns.com/Sprout%20Class.html

By the way, Sprout Class comes from 'Working Effectively with Legacy  
Code' (Feathers), which is probably the best book I've read on TDD  
(Admittedly I've yet to read The RSpec Book). Highly recommended.

> cheers,
> Matt
>
> +447974 430184
> matt at mattwynne.net
> http://mattwynne.net
>

cheers,
Matt

+447974 430184
matt at mattwynne.net
http://mattwynne.net



More information about the rspec-users mailing list