Nat Pryce is an early adopter of eXtreme Programming and a contributor to several open source libraries and tools supporting Test-Driven Development, like jMock. In this episode we discuss several topics from the book 'Growing Object-Oriented Software, Guided by Tests' that he wrote together with Steve Freeman. We talk about the 'Londen-style' of Test-Driven Development, using mock objects to drive your design, listening to your tests and dependency injection.
This interview is recorded on June 14th at the Software Practice Advancement conference (spa2011) in London. Interview by @freekl and @arnetim. Audio post-production by @Mendelt.
Links for this podcast:
The roots of the 'Londen-style' of Test-Driven Development can be traced back to the eXtreme Tuesday Club (XTC). A weekly London (pub) meeting that started more than 10 years ago.
Nat completed his PhD thesis in 2000: 'Component Interaction in Distributed Systems'. A lot of his thoughts on object-orientation and messaging between objects and peers that is described in the book, can be traced back to his early research.
In order to improve the testability of your software, Steve and Nat propose to apply the Ports and adapter architecture from Alistair Cockburn. You can read more on this subject on the wiki of Alistair.
While the use of Dependency Injection is widely spread in the software engineering community, Nat considers applying this style harmful. On his blog you can read more of his thoughts on this subject.
In 2004 Steven and Nat published the article 'Mock Roles, not Objects' in which they introduces jMock.
MultithreadedTC: a framework that can be used to test concurrent Java applications.
This podcast is in English- Deze podcast is in het Engels
Devnology meetings are aimed to bring together passionate developers to exchange ideas and experience, to discuss and network - geek to geek.
About us
We focus on concepts of software development. For new developments we will digg into the underlying principles and concepts and try to place this in a broad perspective of existing platforms and solutions. Read more...