Test Driven Development: By Example

Book Description

Clean code that works--now. This is the seeming contradiction
that lies behind much of the pain of programming. Test-driven
development replies to this contradiction with a paradox--test the
program before you write it.

A new idea? Not at all. Since the dawn of computing, programmers
have been specifying the inputs and outputs before programming
precisely. Test-driven development takes this age-old idea, mixes
it with modern languages and programming environments, and cooks up
a tasty stew guaranteed to satisfy your appetite for clean code
that works--now.

Developers face complex programming challenges every day, yet
they are not always readily prepared to determine the best
solution. More often than not, such difficult projects generate a
great deal of stress and bad code. To garner the strength and
courage needed to surmount seemingly Herculean tasks, programmers
should look to test-driven development (TDD), a proven set of
techniques that encourage simple designs and test suites that
inspire confidence.

By driving development with automated tests and then eliminating
duplication, any developer can write reliable, bug-free code no
matter what its level of complexity. Moreover, TDD encourages
programmers to learn quickly, communicate more clearly, and seek
out constructive feedback.

Readers will learn to:

Solve complicated tasks, beginning with the simple and
proceeding to the more complex.

Write automated tests before coding.

Grow a design organically by refactoring to add design
decisions one at a time.

Create tests for more complicated logic, including reflection
and exceptions.

Use patterns to decide what tests to write.

Create tests using xUnit, the architecture at the heart of many
programmer-oriented testing tools.

This book follows two TDD projects from start to finish,
illustrating techniques programmers can use to easily and
dramatically increase the quality of their work. The examples are
followed by references to the featured TDD patterns and
refactorings. With its emphasis on agile methods and fast
development strategies, Test-Driven Development is
sure to inspire readers to embrace these under-utilized but
powerful techniques.