Crates.io | sham |
lib.rs | sham |
version | 0.1.0 |
source | src |
created_at | 2024-09-11 10:17:47.450224 |
updated_at | 2024-09-11 10:17:47.450224 |
description | Mock implementations for use in testing |
homepage | |
repository | https://github.com/danwilliams/sham |
max_upload_size | |
id | 1371806 |
size | 34,554 |
/ʃ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 modules provided are:
Note, each module is behind a feature flag, in order to keep the crate size down for those who don't need all the functionality.
reqwest
The reqwest
module
provides mocks for the Reqwest crate, which is a
popular HTTP client for Rust.
std_process
The std_process
module provides mocks for the Rust standard library's process module,
mainly and most notably Command
.