A procedural macro that can swap in mock objects, dummy objects, or other test doubles only when testing.
To use, add the following to your Cargo.toml
:
toml
[dependencies]
test_double = "0.2.0"
Note that this crate has not yet reached version 1.0, so the API may change between releases.
#[test_double]
The substituted name defaults to the original name, postfixed with "Mock":
```rust
use image::ImageManager;
// Expands to:
use image::ImageManager;
use image::ImageManagerMock as ImageManager; ```
If you'd like to provide an alternate subsituted name, you can do so:
```rust
use image::ImageManager;
// Expands to:
use image::ImageManager;
use image::IMDummy as ImageManager; ```
#[test_double]
can't be used with:
use blah::*;
use blah::{foo, bar};
, when providing an alternate substituted nametest_doubles!
If you'd like to substitute multiple types at once, you can use the function-like macro. Note that this does not support providing an alternate substituted name.
```rust test_doubles! { use image::ImageManager; use texture::TextureManager; }
// Expands to:
use image::ImageManager;
use image::ImageManagerMock as ImageManager;
use texture::TextureManager;
use texture::TextureManagerMock as TextureManager; ```
test_doubles!
can't be used with:
use blah::*;