Test-Driven Development with Python

Obey the Testing Goat: Using Django, Selenium, and JavaScript

by Harry J. W. Percival

DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

By taking you through the development of a real web application from beginning to end, this hands-on guide demonstrates the practical advantages of test-driven development (TDD) with Python. You'll learn how to write and run tests before building each part of your app, and then develop the minimum amount of code required to pass those tests. The result? Clean code that works.

In the process, you'll learn the basics of Django, Selenium, Git, jQuery, and Mock, along with current web development techniques. If you're ready to take your Python skills to the next level, this book clearly demonstrates how TDD encourages simple designs and inspires confidence.

- Dive into the TDD workflow, including the unit test/code cycle and refactoring;
- Use unit tests for classes and functions, and functional tests for user interactions within the browser;
- Learn when and how to use mock objects, and the pros and cons of isolated vs. integrated tests;
- Test and automate your deployments with a staging server;
- Apply tests to the third-party plugins you integrate into your site;
- Use a Continuous Integration environment to run your tests automatically.

This open book is licensed under a Creative Commons License (CC BY-NC-SA). Free download in PDF format is not available. You can read Test-Driven Development with Python book online for free.

Table of Contents

Part 1
The Basics of TDD and Django
Chapter 1
Getting Django Set Up Using a Functional Test
Chapter 2
Extending Our Functional Test Using the unittest Module
Chapter 3
Testing a Simple Home Page with Unit Tests
Chapter 4
What Are We Doing with All These Tests? (And, Refactoring)
Chapter 5
Saving User Input: Testing the Database
Chapter 6
Improving Functional Tests: Ensuring Isolation and Removing Voodoo Sleeps
Chapter 7
Working Incrementally
Part 2
Web Development Sine Qua Nons
Chapter 8
Prettification: Layout and Styling, and What to Test About It
Chapter 9
Testing Deployment Using a Staging Site
Chapter 10
Getting to a Production-Ready Deployment
Chapter 11
Automating Deployment with Fabric
Chapter 12
Splitting our tests into multiple files, and a generic wait helper
Chapter 13
Validation at the Database Layer
Chapter 14
A Simple Form
Chapter 15
More Advanced Forms
Chapter 16
Dipping Our Toes, Very Tentatively, into JavaScript
Chapter 17
Deploying Our New Code
Part 3
More Advanced Topics
Chapter 18
User Authentication, Spiking and De-Spiking
Chapter 19
Using Mocks to Test External Dependencies or Reduce Duplication
Chapter 20
Test Fixtures and a Decorator for Explicit Waits
Chapter 21
Server-Side Debugging
Chapter 22
Finishing "My Lists": Outside-In TDD
Chapter 23
Test Isolation, and "Listening to Your Tests"
Chapter 24
Continuous Integration (CI)
Chapter 25
The Token Social Bit, the Page Pattern, and an Exercise for the Reader
Chapter 26
Fast Tests, Slow Tests, and Hot Lava

Book Details

Subject
Computer Science
Publisher
O'Reilly Media
Published
2014
Pages
502
Edition
1
Language
English
ISBN13 Digital
9781449364823
ISBN10 Digital
1449364829
License
CC BY-NC-SA

Related Books

Acceptance Test Driven Development with React
This book describes how to apply the Acceptance Test Driven Development when developing a Web Application named bookish with React / Redux and other tools in react ecosystem. It also introduces best practices and design patterns in detail about how to write clean code. Using ATDD to build a React Application from scratch. During the development ...
Angular Testing Succinctly
Though sometimes perceived as a hurdle, testing can save developers from heartbreak in the long run. In Angular Testing Succinctly, author Joseph D. Booth provides a quick introduction to different tools and approaches to testing Angular projects to make them higher quality from the start and easier to maintain down the road. Topics covered include...
A Rust Sampler
Thread-safe, reliable, and lightning-fast, Rust has been the most loved programming language on Stack Overflow for four years and counting! This open source systems language gets its amazing speed in large part from its memory safety - and without resource-greedy garbage collection. Offering freedom from a runtime requirement, a rich type system, a...
Programming for Computations - Python
This book presents computer programming as a key method for solving mathematical problems. This second edition of the well-received book has been extensively revised: All code is now written in Python version 3.6 (no longer version 2.7). In addition, the two first chapters of the previous edition have been extended and split up into five new chapte...
Programming for Computations - Python
This book presents computer programming as a key method for solving mathematical problems. There are two versions of the book, one for MATLAB and one for Python. The book was inspired by the Springer book TCSE 6: A Primer on Scientific Programming with Python (by Langtangen), but the style is more accessible and concise, in keeping with the needs o...
Agile Processes in Software Engineering and Extreme Programming
This book constitutes the proceedings of the 19th International Conference on Agile Software Development, XP 2018, held in Porto, Portugal, in May 2018. XP is the premier agile software development conference combining research and practice, and XP 2018 provided a playful and informal environment to learn and trigger discussions around its main th...