Mocking
When testing your code, you might face the need to replace the behavior of an existing function or class and to track whether a function was called or not with the proper arguments.
For example, say you have a function such as the following:
def print_division(x, y): print(x / y)
To test it, we don't want to go to the screen and check the output, but we still want to know whether the printed value was the expected one.
So a possible approach might be to replace print
with something that doesn't print anything, but allows us to track the provided argument (which is the value that would be printed).
This is exactly the meaning of mocking: replacing an object or function in the code base with one that does nothing but allows us to inspect the call.
How it works...
You need to perform the following steps for this recipe:
- The
unittest
package provides amock
module that allows us to createMock
objects and topatch
existing objects, so we can rely on it to replace the behavior ofprint
...