hello 2009/10/14 Ashley Moran <ashley.mo...@patchspace.co.uk>
> 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? > hey ashley, the code itself is not very interesting, it's some fast hacking I'm doing dumping chess positions into a string, and then the methods given the character index on that string should translate it to two-dimensional vectors in the board, boring: mainly math calculations multiplying columns by some number and adding row numbers and such, and during the spec-ing of the public method the question arose... and yeah, I think 5 it my favorite at the moment, they don't have to be private anyway, also IMHO testing private methods through the public API it's not in general applicable (only thinking here, no code sample)... but anyway I wanted to hear what you guys think about it thanks, joaquin > 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 > -- www.least-significant-bit.com
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users