On Jan 9, 2008 7:26 AM, Richard Conroy <[EMAIL PROTECTED]> wrote:
> On Jan 8, 2008 7:14 PM, Daniel Tenner <[EMAIL PROTECTED]> wrote:
> > Might be a personal thing, but my approach is that I try to test the
> > public behaviour of the object. Testing private methods is, imho,
> > getting dangerously close to specifying how the object does its
> > business, rather than what it does.
> >
> > I would just spec the externally visible behaviour, where it occurs,
> > and let the object implement it as it wants (using private methods or
> > any other mechanism).
>
> The trouble is that this makes it very difficult to get effective coverage.
> There is usually a lot more setup involved. If your tests are more expensive
> to write, because you are unit testing indirectly through public methods,
> less testing will get done,

If you live by the rule of "never write a line of code except to get a
failing example to pass," then you should always have 100% coverage
implicitly. If you're back-filling that's a different story, but then
we're not talking about BDD anymore.

I'm not saying that I will never test private methods, but it's
something that should be rare and avoided.

FWIW,
David

> and worse tests can end up getting very brittle.
>
> I do like the idea though of during the unit test itself, you unseal the 
> method.
> You get the best of both worlds.
>
> _______________________________________________
> 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