Re: Three Law of TDD - to strictly follow, or not?

"Colin Vipurs [email protected] [testdrivendevelopment]" <[email protected]> Tue, 26 Aug 2014 17:04:36 +0100
Newsgroups gmane.comp.programming.test-driven-development
Message-ID <CAKi4273x+hx_H1Myq3DDXfo4nBEJd17qS7EXYEX7mZmj9FDtUg@mail.gmail.com>
>
> Do you strictly follow the three laws of TDD as literally written?
>

No.  But I don't follow anything strictly!


> What step size do you typically have when going back and forth between
> tests and code?
>

This varies greatly depending on what I'm working on/how comfortable I am
with everything.  When working with a new language/framework etc. my steps
will usually be very small as I'm trying to figure things out as I go
along.  If I'm in vanilla Java doing things I've done before the steps will
be bigger as I'm more comfortable.  Kent described this in his book but
referred to it as "gears" not steps

How do you decide the appropriate step size?
>

See above + some gut feeling


> When writing a test, do you define a method or constructor with all its
> expected parameters?
>

This is something I will let evolve as I add more tests.  It seems like the
pain your coworker was feeling could be down to not refactoring the test
itself.  Instantiating the class under test multiple times in a test is
what I would consider to be duplication


> Do you consider, "an incomplete but green test is at best misleading and
> at worst wrong"?
>

Yes, but only for a certain degree of "incomplete" :)

You said "I disagree with the comment because it allows multiple
unnecessary lines of code to be written and doesn't provide a progression
that guarantees that all production code is effectively "tested"/covered.".
 I'd like to ask why you think this?  Each of my tests are small and cover
essentially at most one path through the code.



>
> Thank you for the feedback.
>
> --Kaleb
>
>  
>



-- 
Maybe she awoke to see the roommate's boyfriend swinging from the
chandelier wearing a boar's head.

Something which you, I, and everyone else would call "Tuesday", of course.