Python Testing: Beginner's Guide
|Also available on:|
- Covers everything you need to test your code in Python
- Easiest and enjoyable approach to learn Python testing
- Write, execute, and understand the result of tests in the unit test framework
- Packed with step-by-step examples and clear explanations
Book DetailsLanguage : English
Paperback : 256 pages [ 235mm x 191mm ]
Release Date : January 2010
ISBN : 1847198848
ISBN 13 : 9781847198846
Author(s) : Daniel Arbuckle
Topics and Technologies : All Books, App Testing, Application Development, Beginner's Guides, Open Source, Python
Table of Contents
Chapter 1: Testing for Fun and Profit
Chapter 2: Doctest: The Easiest Testing Tool
Chapter 3: Unit Testing with Doctest
Chapter 4: Breaking Tight Coupling by using Mock Objects
Chapter 5: When Doctest isn't Enough: Unittest to the Rescue
Chapter 6: Running Your Tests: Follow Your Nose
Chapter 7: Developing a Test-Driven Project
Chapter 8: Testing Web Application Frontends using Twill
Chapter 9: Integration Testing and System Testing
Chapter 10: Other Testing Tools and Techniques
Appendix: Answers to Pop Quizes
Download the code and support files for this book.
Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.
Errata- 16 submitted: last submission 24 Jan 2014
Errata type: Language | Page number: 38
"..,we want that failure to tell where the problem is us as specifically as possible." should be "...,we want that failure to tell where the problem is as specifically as possible."
Errata type: Language | Page number: 9
"...something is a unit if it there's no..." should be "...something is a unit if there's no..."
Errata type: Typo | Page number: 21
"This is usefull if you..." should be "This is useful if you..."
Errata type: Code | Page number: 28
"...descendants, such that the the tree..." should be "...descendants, such that the tree..."
Errata type: Code | Page number: 45
"self.integrated_error +q= err * delta" should be "self.integrated_error += err * delta"
Errata type: Technical | Page number: 62
"...you should be ready to use Nose." should be "...you should be ready to use Python Mocker."
Errata type: Code | Page number: 103
test_module.1.py test_module.1.py module1.txt module1.txt should be test_module.1.py test_module.2.py module1.txt module2.txt
Errata type: Others | Page number: 126
TThe line ending with "2008-04-27T00:" contains crossed box characters instead of whitespaces.
Errata type: Others | Page number: 129
The line ending with "2008-04-27T00" contains crossed box characters instead of whitespaces.
Errata type: Others | Page number: 131
The line ending with "2008-04-27T00:00" contains crossed box characters instead of whitespaces.
Errata type: Others | Page number: 141
The line ending with "contained.exclude(task):" contains crossed box characters instead of whitespaces.
Errata type: Others | Page number: 142
The line ending with "contained.exclude(task)" contains crossed box characters instead of whitespaces.
Errata type: Typo | Page number: 114 | Errata date: 21 July 11
"That's two underbars, the word 'init, and two more". should be "That's two underbars, the word 'init', and two more" A quote (') is missing after init
Errata type: Typo | Page number: 32
"leaf descendants, such that the the tree"
Should be: "leaf descendants, such that the tree"
Errata type: Code | Page number: 18
In the section titled Time for action – using ellipsis in tests, the code:
>>> import datetime
>>> datetime.datetime.now().isoformat() # doctest: +ELLIPSIS
>>> import datetime
>>> datetime.datetime.now().isoformat() # doctest: +ELLIPSIS
Errata type: Code
Page No. 17, Time for action, Step 1
Insert the following text into your doctest file: Next up, we're exploring the ellipsis. >>> sys.modules # doctest: +ELLIPSIS
It should be
Insert the following text into your doctest file: Next up, we're exploring the ellipsis. >>> import sys >>> sys.modules # doctest: +ELLIPSIS
What you will learn from this book
- Make testing easy and convenient with Python's doctest module, which lets you put your tests right into your doc strings
- Drive development using unit testing and learn how it can make the process quicker
- Explore the assorted features Mocker provides to help you keep units separate from each other and customize it to suit your needs
- Embed your tests in a controlled and temporary environment using test fixtures
- Simplify the integration of unittest and Mocker using Python Mocker's MockerTestCase
- Automatically find and execute tests using Nose – a unittest-based testing framework for Python that makes writing and running tests easier
- Write tests for web applications using Twill and integrate it's capabilities as a library into Python testing code
- Create integration tests and run them to see if your programs work correctly in concert with each other
- Run Nose automatically when your version control software detects changes in the source code
- Set up the Buildbot automated continuous integration system to run your tests repeatedly over many different environments
Chapter 1 introduces Python test-driven development and various testing methods.
Chapter 2 covers the doctest tool and teaches you how to use it.
Chapter 3 introduces the ideas of unit testing and test-driven development, and applies doctest to create unit tests.
Chapter 4 covers mock objects and the Python Mocker tool.
Chapter 5 introduces the unittest framework and discusses when it is preferred over doctest.
Chapter 6 introduces the Nose test runner, and discusses project organization.
Chapter 7 walks through a complete test-driven development process.
Chapter 8 applies the knowledge gained from previous chapters to web applications, and introduces the Twill tool.
Chapter 9 teaches how to build up from unit tests to tests of a complete software system.
Chapter 10 introduces code coverage and continuous integration, and teaches how to tie automated testing into version control systems.
Automated testing moves much of the labor of testing off the developer and makes it easier as well as quicker to find bugs and fix them. Automated tests run faster, increase test coverage, and lower costs. However, testing is neither an easy process nor remotely exciting for most developers. But with the right techniques and tools, testing can become a simple and gratifying part of the development process.
With this helpful guide – from an expert – in your hand, testing will not be a tiresome topic for you anymore. You will learn how to test your Python projects in the easiest way, making other parts of the development process easier and more enjoyable.
This book covers the tools and techniques of automated testing and test-driven development. Starting from the very basics, the chapters introduce new tools and techniques in simple, accessible language with step-by-step examples. You will explore how to make testing easier and more accurate with Python's doctest module and learn test-driven development using the unittest framework. You will also learn how to keep your units separate from each other and discover a simple and easy way to integrate Mocker and unittest. Next, we cover integration testing and web application testing.
Automated testing gives developers better feedback, faster and more often. Bugs get found sooner and fixed better, with less effort. By the end of this book, you will have all of the skills needed to benefit from automated testing.
Test-driven development of Python software—make development easier using some of the best testing tools out there
The book begins with the very foundations of automated testing, and expands on them until the best-practice tools and techniques are fully covered. New concepts are illustrated with step-by-step hands-on exercises. Testing will be easier and more enjoyable with this beginner's guide.
Who this book is for
If you are a Python developer and want to write tests for your applications, this book will get you started and show you the easiest way to learn testing.
You need to have sound Python programming knowledge to follow along. An awareness of software testing would be good, but no formal knowledge of testing is expected nor do you need to have any knowledge of the libraries discussed in the book.