Author: | Michael Foord |
---|---|
Version: | Mock 0.6.0 |
Date: | 2009/08/22 |
Homepage: | Mock Homepage |
Documentation: | PDF Documentation |
License: | BSD License |
Support: | Testing in Python Email List |
Contact: | fuzzyman@voidspace.org.uk |
mock provides a core mock.Mock class that is intended to reduce the need to create a host of trivial stubs throughout your test suite. After performing an action, you can make assertions about which methods / attributes were used and arguments they were called with. You can also specify return values and set specific attributes in the normal way.
It also provides a mock.patch() decorator that handles patching module and class level attributes within the scope of a test, along with mock.sentinel for creating unique objects.
Most mocking libraries follow the ‘record -> replay’ pattern of mocking. I prefer the ‘action -> assertion’ pattern, which is more readable and intuitive; particularly when working with the Python unittest module. For a discussion of the merits of the two approaches, see Mocking, Patching, Stubbing: all that Stuff.
The current version is 0.6.0, dated 23rd August 2009. Mock is still experimental; the API may change. If you find bugs or have suggestions for improvements / extensions then please email me.
You can checkout the latest development version from the Google Code Subversion repository with the following command:
svn checkout http://mock.googlecode.com/svn/trunk/ mock-read-only
Mock is registered with PyPi (Mock on PyPi). If you have pip or Distribute you can install mock with:
easy_install mockpip mock
Articles and blog entries on testing with Mock: