Subscribe and be notified whenever new books are published. View Sample Newsletter Or RSS Feed


Test-Driven Development with Django

By: Kevin Harvey
Pages: 150
Publisher: Packt Publishing - ebooks Account

Develop powerful, fully-featured Django applications by writing tests first

About This Book

  • Deliver feature-complete projects by encoding user stories and features in functional tests
  • Take a deep dive into browser-based testing with Selenium and Django's LiveServerTestCase
  • An example driven, comprehensive guide to exploring test-driven development techniques with Django

Who This Book Is For

This book is for Django developers with little or no knowledge of test-driven development or testing in general. Familiarity with the command line, setting up a Python virtual environment, and starting a Django project are assumed.

What You Will Learn

  • Codify user stories as browser-based tests to ensure their completion
  • Write isolated unit tests that not only confirm your application, but also explain it
  • Use the red-green-refactor TDD cycle to create and refine your code by changing tests first
  • Test integrations with external APIs by testing their documentation
  • Mock out calls to external services and internal functions
  • Explore the basics of documentation-driven API design
  • Other testing tools available in popular Python packages such as Django REST framework and VCR.py

In Detail

Test-Driven Development (TDD) simplifies the trickiest of software tasks with its unique ability to peel back problems into layers. The testing tools available in Python and Django make test writing a joy, and the full coverage test suite that results from TDD is a boon to any project.

This guide to developing with Django takes a test-first approach: write a test, then write enough production code to get it to pass. You'll quickly get hands-on experience, writing tests for a database-driven application with the TDD methodology. Use this book to build the skills and habits that make testing a regular part of your workflow.