|An Introduction to Python|
by Guido van Rossum and Fred L. Drake, Jr.
Paperback (6"x9"), 124 pages
RRP £12.95 ($19.95)
Sales of this book support the Python Software Foundation! Get a printed copy>>>
10.11 Quality Control
One approach for developing high quality software is to write tests for each function as it is developed and to run those tests frequently during the development process.
The ‘doctest’ module provides a tool for scanning a module and validating tests embedded in a program's docstrings. Test construction is as simple as cutting-and-pasting a typical call along with its results into the docstring. This improves the documentation by providing the user with an example and it allows the doctest module to make sure the code remains true to the documentation:
def average(values): """Computes the arithmetic mean of a list of numbers. >>> print average([20, 30, 70]) 40.0 """ return sum(values, 0.0) / len(values) import doctest doctest.testmod() # automatically validate the tests
The ‘unittest’ module is not as effortless as the ‘doctest’ module, but it allows a more comprehensive set of tests to be maintained in a separate file:
import unittest class TestStatisticalFunctions(unittest.TestCase): def test_average(self): self.assertEqual(average([20, 30, 70]), 40.0) self.assertEqual(round(average([1, 5, 7]), 1), 4.3) self.assertRaises(ZeroDivisionError, average, ) self.assertRaises(TypeError, average, 20, 30, 70) unittest.main() # Calling from the command line invokes # all tests
|ISBN 0954161769||An Introduction to Python||See the print edition|