Saturday, January 2, 2010

Ruby: testing private methods

Sometimes you want to test a private method. You can make your method public and ignore the principle of encapsulation, or use this nice trick.


As expected, a private method cannot be accessed.


Wait a second. How does that work? Ruby allows you to define methods for an object, a so called singleton method. After instantiating an object, you can define a method for it. Within the singleton method, self is the instantiated object, so you can access its private methods.


Mystery solved.

No comments:

Post a Comment