Powerful test doubles framework for Python
a trivial example¶
import unittest from doublex import Spy, assert_that, called class SpyUseExample(unittest.TestCase): def test_spy_example(self): # given spy = Spy(SomeCollaboratorClass) cut = YourClassUnderTest(spy) # when cut.a_method_that_call_the_collaborator() # then assert_that(spy.some_method, called())
See more about doublex doubles.
- doubles have not public API framework methods. It could cause silent misspelling.
- doubles do not require collaborator instances, just classes, and it never instantiate them.
assert_that()is used for ALL assertions.
- mock invocation order is relevant by default.
- supports old and new style classes.
- supports Python versions: 3.6, 3.7, 3.8, 3.9, 3.10
- Ad-hoc stub methods
- Stub delegates
- Stub observers
- Mimic doubles
- Asynchronous spies
- Inline stubbing and mocking
- calls: low-level access to invocation records
- Release notes / Changelog