Skip to content

Explanation

Understanding-oriented material that explains the design decisions and concepts behind utest. These pages answer "why does it work this way?" rather than "how do I do X?".


For test authors

Page What it covers
About the mocking architecture Why utest separates shim, proxy, and mock engine — and how the layer model enables safe nested mocking
About test isolation What the framework guarantees between tests and where that guarantee ends
About inject() vs global.patch() Why two mock mechanisms exist and when to use each
About strict mode The philosophy behind failing on unmocked calls and the trade-offs involved
About property-based testing How the shrinking model works, and how randomness is managed

For contributors

Page What it covers
About the worker/coordinator Why tests run in subprocesses and how the coordinator collects results
About the reporter architecture Why the worker/coordinator reporter split exists and how the coordinator-side hook model works
About the mock engine The registry, layer stack, and snapshot/restore design
About shim generation Why shims exist and how manager.uc generates them at runtime