Book Image

Test-Driven Java Development

Book Image

Test-Driven Java Development

Overview of this book

Table of Contents (17 chapters)
Test-Driven Java Development
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
8
Refactoring Legacy Code – Making it Young Again
Index

Developing Tic-Tac-Toe


Are you ready to code? Let's start with the first requirement.

Requirement 1

We should start by defining the boundaries and what constitutes an invalid placement of a piece.

Note

A piece can be placed on any empty space of a 3×3 board.

We can split this requirement into three tests:

  • When a piece is placed anywhere outside the X axis, then RuntimeException is thrown.

  • When a piece is placed anywhere outside the Y axis, then RuntimeException is thrown.

  • When a piece is placed on an occupied space, then RuntimeException is thrown.

As you can see, the tests related to this first requirement are all about validations of the input argument. There is nothing in the requirements that says what should be done with those pieces.

Before we proceed with the first test, a brief explanation of how to test exceptions with JUnit is in order.

Starting from the release 4.7, JUnit introduced a feature called Rule. It can be used to do many different things (more information can be found at https...