<<< Previous speaker next speaker >>>

Principal Consultant Erik Dörnenburg, ThoughtWorks Inc.

Principal Consultant Erik  Dörnenburg

Erik Doernenburg is a Principal Consultant at ThoughtWorks Inc. where he is helping clients with the design and implementation of large-scale enterprise solutions.

Building on his experience with J2EE, Microsoft .NET and other environments, Erik is continually exploring patterns of enterprise software. He is an advocate of agile development and Open Source software, holds a degree in Informatics from the University of Dortmund and has studied Computer Science and Linguistics at the University College Dublin.

Presentation: "Test Driven Development, Take 2"

Time: Wednesday 15:40 - 16:30

Location: Store Sal

Abstract:

More and more developers are being drawn to Test Driven Development (TDD). It doesn't take much time or effort to get going, especially after you have passed that first hurdle of approaching development using the mantra of "red-green-refactor" instead of "code for days and then debug and test". But after a while you discover that TDD has more to it than just basic state-based testing.

In this session Erik will present in-depth discussions of topics such as interaction-based testing, dependency injection, classical vs mockist testing, test doubles, and the object mother pattern.

Workshop: "Test Driven Development"

Track: Tutorial

Time: Thursday 09:00 - 17:00

Location: Musikhuset Nr. 222

Abstract:

This tutorial demonstrates the development of a small example application using test-driven development and related technologies. The system will comprise a handful of Java classes that exemplify typical components found in enterprise applications, including domain objects and a service layer. The tutorial is structured into three ‘iterations’ which cover

  1. state-based testing with JUnit
  2. interaction-based testing with JUnit and jMock
  3. deployment in lightweight containers such as PicoContainer and Spring.

The iterations not only introduce the concepts but also provide room for the discussion of trade-offs and edge cases, e.g. how to deal with testing private methods and when not to use dynamic mocks but fake objects. The implementation will make use of the Dependency Injection pattern and the last iteration examines how this is supported by lightweight containers.

Attendees gain an understanding of how proper use of test-driven development fosters good design; through decoupling and interface discovery for example. Attendees will also gather a nice catalogue of the most commonly used patterns used in conjunction with test-driven development.