Utilities for spying on function calls in unit tests
Description
Spies intercept and record calls to functions. They can report on how many
times a function was called and with what arguments. They can allow the
function call to go through as normal, to block it, or to reroute it to another
function.