Third Question:

+Kent Beck <https://plus.google.com/101480213822270107414>  +Martin Fowler 
<https://plus.google.com/107610341080687821846> +David Heinemeier Hannson 
<https://plus.google.com/102352328760254046201> Can you please discuss the 
point made by +Gary Bernhardt 
<https://plus.google.com/117747180422979537507> on your following exchange 
in part 1 of this hangout:

+Kent Beck <https://plus.google.com/101480213822270107414> : "I just don't 
go very far down the mock path. I look at code where you have mock 
returning mocks returning mock and my experience is if I have, if I use TDD 
I can refactor stuff, and then I heard these stories, people say "well I 
use TDD and now I can't refactor anything" and like I could not understand 
that, and then I started looking at their tests and well, if you have mocks 
returning mocks returning mocks, your test is completely coupled to the 
implementation, not the interface, but the exact implementation of some 
object, you know, three streets away, of course you can't change anything 
without breaking the test. So that for me is too high a price to pay.That 
is not a trade off I am willing to make just to get piecemeal development
+Martin Fowler <https://plus.google.com/107610341080687821846>: "And this 
is I think much at the heart of this. Confusion about over terminology And 
what these different things are. When I read David's initial blog 
post...one of the things that came through very clearly was his criticism 
of TDD and of how the design damage that comes/flows through it has in 
itself tied in a notion of the strong desire for isolation and mocking. And 
it is very important to point out that there is nothing within the idea of 
how you do either TDD or unit testing that says you have to have that kind 
of isolation. Some people are very much in favour of it, others 
aren't...Our style of testing, we don't bother with isolation and you know, 
it is working very well for us, thank you very much. So that is one thing, 
wheter TDD and Unit testing should be tied in with the idea of isolation, 
and I look at it as different schools of thought, and I am with Kent, I 
hardly ever use mocks, but I know good people who do, so I don't want to 
shoot everybody who uses mocks, maybe give it 10 more years and then we'll 
drum them out or something, we'll see."  

+Gary Bernhardt <https://plus.google.com/117747180422979537507>  wrote a 
great blog post called "Test Isolation Is About Avoiding Mocks" 
https://www.destroyallsoftware.com/blog/2014/test-isolation-is-about-avoiding-mocks
.

+Kent Beck <https://plus.google.com/101480213822270107414>  +Martin Fowler 
<https://plus.google.com/107610341080687821846>  +David Heinemeier Hannson 
<https://plus.google.com/102352328760254046201>  Can you discuss the point 
he makes in the post?
Here are the post's concluding thoughts:

"This post was triggered by Kent's comment about triply-nested mocks. I 
doubt that he intended to claim that mocking three levels deep is inherent 
to, or even common in, isolated testing. However, many others have proposed 
exactly that straw man argument. That argument misrepresents isolated 
testing to discredit it; it presents deep mocks, which are to be avoided in 
isolated testing, as being fundamental to it; it's fallacious. It's at the 
root of the claim that mocking inherently makes tests fragile and 
refactoring difficult. That's very true of deep mocks, but not very true of 
mock-based isolation done well, and certainly isn't true of isolation done 
without mocks.

In a very real sense, isolated testing done test-first exposes design 
mistakes before they're made. It translates coupling distributed throughout 
the module into mock setup centralized in the test, and it does that before 
the coupling is even written down. With practice, that preemptive design 
feedback becomes internalized in the programmer, granting some of the 
benefit even when not writing tests. There may be other paths to that 
skill, but I'm still learning from my tests after seven years of isolating 
around 50% of the time. This path also happens to produce a trail of 
sub-millisecond tests fully covering every component designed using it, 
which is alright with me."

On Sunday, 1 June 2014 07:03:06 UTC+1, Philip Schwarz wrote:
>
> The panel (@martinFowler @KentBeck and @dhh) of the "Is TDD dead?" Google 
> Hangout https://plus.google.com/events/cco30ri6dpkej4h4d8mejmat98o have 
> invited spectators to put forward questions for the final part of the 
> debate. 
>
> IMHO It would be a shame if we missed the opportunity to ask them to talk 
> about "mocks returning mocks returning mocks" and the important points so 
> effectively described by @garybernhardt in "Test Isolation Is About 
> Avoiding Mocks" 
> https://www.destroyallsoftware.com/blog/2014/test-isolation-is-about-avoiding-mocks
> . 
>
> If the topic matters to you, how about putting forward your questions, so 
> there is a better chance of the topic being debated? 
>
> To propose a question, just click play on the video you see on the hangout 
> page.
>
> Philip Schwarz
>

-- 
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to javaposse+unsubscr...@googlegroups.com.
To post to this group, send email to javaposse@googlegroups.com.
Visit this group at http://groups.google.com/group/javaposse.
For more options, visit https://groups.google.com/d/optout.

Reply via email to