|
| 1 | +<section data-type="preface"> |
| 2 | +<h1>Brief Table of Contents (<em>Not Yet Final</em>)</h1> |
| 3 | + |
| 4 | +<p>Preface (AVAILABLE)</p> |
| 5 | +<p>Prerequisites and Assumptions (AVAILABLE)</p> |
| 6 | +<p>Companion Video (AVAILABLE)</p> |
| 7 | +<p><em>Acknowledgments (UNAVAILABLE)</em></p> |
| 8 | +<p>Part 1: The Basics of TDD and Django (AVAILABLE)</p> |
| 9 | +<p>Chapter 1: Getting Django Set Up Using a Functional Test (AVAILABLE)</p> |
| 10 | +<p>Chapter 2: Extending Our Functional Test Using the unittest Module (AVAILABLE)</p> |
| 11 | +<p>Chapter 3: Testing a Simple Home Page with Unit Tests (AVAILABLE)</p> |
| 12 | +<p>Chapter 4: What Are We Doing with All These Tests? (And, Refactoring) (AVAILABLE)</p> |
| 13 | +<p>Chapter 5: Saving User Input: Testing the Database (AVAILABLE)</p> |
| 14 | +<p>Chapter 6: Improving Functional Tests: Ensuring Isolation and Removing Voodoo Sleeps (AVAILABLE)</p> |
| 15 | +<p>Chapter 7: Working Incrementally (AVAILABLE)</p> |
| 16 | +<p>Part 2: Web Development Sine Qua Nons (AVAILABLE)</p> |
| 17 | +<p>Chapter 8: Prettification: Layout and Styling, and What to Test About It (AVAILABLE)</p> |
| 18 | +<p>Chapter 9: Deployment Part 1: Containerization akaDocker (AVAILABLE)</p> |
| 19 | +<p>Chapter 10: Getting to a Production-Ready Deployment (AVAILABLE)</p> |
| 20 | +<p>Chapter 11: Infrastructure As Code: Automated Deployments With Ansible (AVAILABLE)</p> |
| 21 | +<p><em>Chapter 12: Splitting Our Tests into Multiple Files, and a Generic Wait Helper (UNAVAILABLE)</em></p> |
| 22 | +<p><em>Chapter 13: Validation at the Database Layer (UNAVAILABLE)</em></p> |
| 23 | +<p><em>Chapter 14: A Simple Form (UNAVAILABLE)</em></p> |
| 24 | +<p><em>Chapter 15: More Advanced Forms (UNAVAILABLE)</em></p> |
| 25 | +<p><em>Chapter 16: Dipping Our Toes, Very Tentatively, into JavaScript (UNAVAILABLE)</em></p> |
| 26 | +<p><em>Chapter 17: Deploying Our New Code (UNAVAILABLE)</em></p> |
| 27 | +<p><em>Part 3: More Advanced Topics in Testing (UNAVAILABLE)</em></p> |
| 28 | +<p><em>Chapter 18: User Authentication, Spiking, and De-Spiking (UNAVAILABLE)</em></p> |
| 29 | +<p><em>Chapter 19: Using Mocks to Test External Dependencies or Reduce Duplication (UNAVAILABLE)</em></p> |
| 30 | +<p><em>Chapter 20: Test Fixtures and a Decorator for Explicit Waits (UNAVAILABLE)</em></p> |
| 31 | +<p><em>Chapter 21: Server-Side Debugging (UNAVAILABLE)</em></p> |
| 32 | +<p><em>Chapter 22: Finishing “My Lists”: Outside-In TDD (UNAVAILABLE)</em></p> |
| 33 | +<p><em>Chapter 23: Test Isolation, and “Listening to Your Tests” (UNAVAILABLE)</em></p> |
| 34 | +<p><em>Chapter 24: Continuous Integration (CI) (UNAVAILABLE)</em></p> |
| 35 | +<p><em>Chapter 25: The Token Social Bit, the Page Pattern, and an Exercise for the Reader (UNAVAILABLE)</em></p> |
| 36 | +<p><em>Chapter 26: Fast Tests, Slow Tests, and Hot Lava (UNAVAILABLE)</em></p> |
| 37 | +<p><em>Back Matter: Obey the Testing Goat! (UNAVAILABLE)</em></p> |
| 38 | +<p><em>App A: PythonAnywhere (UNAVAILABLE)</em></p> |
| 39 | +<p><em>App B: Django Class-Based Views (UNAVAILABLE)</em></p> |
| 40 | +<p><em>App C: Provisioning with Ansible (UNAVAILABLE)</em></p> |
| 41 | +<p><em>App D: Testing Database Migrations (UNAVAILABLE)</em></p> |
| 42 | +<p><em>App E: Behaviour-Driven Development (BDD) (UNAVAILABLE)</em></p> |
| 43 | +<p><em>App F: Building a REST API: JSON, Ajax, and Mocking with JavaScript (UNAVAILABLE)</em></p> |
| 44 | +<p><em>App G: Django-Rest-Framework (UNAVAILABLE)</em></p> |
| 45 | +<p><em>App H: Cheat Sheet (UNAVAILABLE)</em></p> |
| 46 | +<p><em>App I: What to Do Next (UNAVAILABLE)</em></p> |
| 47 | +<p><em>App J: Source Code Examples (UNAVAILABLE)</em></p> |
| 48 | +<p><em>Bibliography (UNAVAILABLE)</em></p> |
| 49 | + |
| 50 | +</section> |
0 commit comments