In unit testing, you use mocks to simulate the behavior of other code parts in controlled ways. mock is a Python library for testing that allows you to replace parts of the system under test with mock objects and make assertions about how they have been used. mock has been integrated the Python standard library since version 3.3 under the name unittest.mock.
It might seem strange that software developers still have trouble understanding. In this article, Jeff Knupp tries to describe what unit testing is, why it is useful and how you should perform unit testing for Python code.
PyVows is an open source tools that provides asynchronous behaviour driven development for Python. PyVows allows executing the unit tests in parallel when it makes sense, and sequentially when there are dependencies.
This chapter from the “Hitchhiker’s Guide to Python” provides recommendations on how to perform unit tests in Python and presents the unitest and doctest modules. It also lists the tools that are available to perform unit testing in Python.
In this blog post, Martin Sikora shares his experience of performing Python unit tests on the Google App Engine (GAE). You can test such application locally in terminal, locally on GAE test server or on a real GAE production server hosted on Google infrastructure. To achieve this objective, he used nose, a tool that extends Python’s unittest to make testing easier, with NoseGAE, a nose plugin that makes it easier to write functional and unit tests for Google App Engine applications. The blog post provides the code to run the tests on a GAE server.
This article from David Sale provides a short introduction to Behavior-Driven Development in Python. The article presents the principles of Behavior Driven Development and present the syntax of the Gherkin language that can be used with the freshen Python package, a clone of the famous Cucumber BDD framework written for Ruby. Freshen is an open source acceptance testing framework for Python that uses (mostly) the same syntax as Cucumber. A small step by step example is provided on how to use freshen and alternative tools are proposed.
Evan Farrer to test the frequently cited claim by proponents of dynamically typed programming languages that static typing was not needed for detecting bugs in programs. In his blog post, he explains why unit testing isn’t enough and you need static typing too.