2个不稳定版本
0.2.0 | 2022年9月15日 |
---|---|
0.1.0 | 2022年9月14日 |
#48 in #stub
4KB
stub_trait
宏,用于为特实现stub对象。
概述
Stub traits是一种模拟某些行为或避免被尚未实现的代码特定部分阻塞的技术。
用法
stub_trait通常仅用于测试。在您的 Cargo.toml
中添加以下片段
[dev-dependencies]
stub_trait = "0.2.0"
您可以使用它如下
#[cfg(test)]
use stub_trait::stub;
#[cfg_attr(test, stub)]
trait Animal {
fn name(&self) -> &str;
}
#[cfg(test)]
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);
}
}
贡献
查看 CONTRIBUTING.md 文件。