Macro to implement stub object for a trait.
Stub traits is a technique to simulate some comportments or to avoid to be blocked by a specific part of the code that is not implemented yet.
stub_trait is generally only used by tests. Add the following snippet into your Cargo.toml
:
toml
[dev-dependencies]
stub_trait = "0.1.0"
You can use it like this: ```rust
use stub_trait::stub;
trait Animal { fn name(&self) -> &str; }
mod test { use super::*;
#[test]
fn stub_all_calls() {
let mut animal = StubAnimal::default();
animal.stub_all_calls_of_name(|| "Ivana");
assert_eq!(animal.name(), "Ivana");
assert_eq!(animal.name(), "Ivana");
assert_eq!(animal.count_calls_of_name(), 2);
}
#[test]
fn stub_call_by_call() {
let mut animal = StubAnimal::default();
animal.register_stub_of_name(|| "Ivana");
animal.register_stub_of_name(|| "Truffle");
assert_eq!(animal.name(), "Ivana");
assert_eq!(animal.name(), "Truffle");
assert_eq!(animal.count_calls_of_name(), 2);
}
} ```
See CONTRIBUTING.md file.