Book Image

Test-Driven Python Development

By : Siddharta Govindaraj
Book Image

Test-Driven Python Development

By: Siddharta Govindaraj

Overview of this book

This book starts with a look at the test-driven development process, and how it is different from the traditional way of writing code. All the concepts are presented in the context of a real application that is developed in a step-by-step manner over the course of the book. While exploring the common types of smelly code, we will go back into our example project and clean up the smells that we find. Additionally, we will use mocking to implement the parts of our example project that depend on other systems. Towards the end of the book, we'll take a look at the most common patterns and anti-patterns associated with test-driven development, including integration of test results into the development process.
Table of Contents (20 chapters)
Test-Driven Python Development
Credits
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

Organizing tests


The first step in easing test maintenance is to have a systematic way of organizing tests. When we are implementing a new feature, we need to be able to quickly and easily locate the existing test code for a given method or class. There are three steps to making this easy. We have to decide:

  • Where the files are stored on the filesystem

  • What the files are called

  • The names of the test classes

Filesystem layout

The main consideration in deciding where to place our test code is the ease with which we can locate the tests for a specific class or module. Apart from this, there are two other considerations to keep in mind:

  • How will this module be packaged and distributed?

  • How will this code be put into production?

For the first consideration, we have to keep in mind that we will want to distribute unit tests along with the main code. For code that goes into production, we might not always want tests to be deployed, so we would be looking at a way to separate the code and tests.

Given all...