/ʃam/
noun - a thing that is not what it is purported to be.
adjective - not genuine; fake or false.
verb - falsely present something as the truth.
Sham is a collection of useful mocks and fakes for testing Rust code. The primary purpose is to be able to swap out a genuine implementation and substitute it with a sham one, in order to achieve deterministic testing without side effects.
This is particularly useful for testing code that usually performs a particular operation that is either expensive, slow, or has side effects that are undesirable in a test environment, such as sending network requests. In these cases, a sham implementation can be used to simulate the real one, without actually performing the operation.
The main crate is sham
, and the other crates rely on
it or provide secondary functionality in some way. This repository as a whole
shares a name with the main crate. You can read about the naming and purpose of
each crate in their respective README files.
sham
- The main crate, containing the Sham library.