4 个版本 (2 个稳定版)
1.1.0 | 2022 年 12 月 16 日 |
---|---|
1.0.0 | 2022 年 11 月 14 日 |
0.2.0 | 2022 年 9 月 15 日 |
0.1.0 | 2022 年 9 月 14 日 |
#39 in #mock
每月 25 次下载
用于 projectctl
46KB
131 代码行
stub_trait
用于实现 trait 的占位符对象的宏。
概述
Stub traits 是一种模拟某些行为或避免被尚未实现的具体代码部分阻塞的技术。
用法
stub_trait 通常仅在测试中使用。将以下片段添加到您的 Cargo.toml
[dev-dependencies]
stub_trait = "1.1.0"
您可以使用它如下所示
#[cfg(test)]
use stub_trait::stub;
#[cfg_attr(test, stub)]
trait Animal {
fn feed(&self, quantity: usize) -> &str;
}
#[cfg(test)]
fn test() {
let animal = StubAnimal::new().with_stub_of_feed(|i, quantity| {
if i == 0 {
assert_eq!(quantity, 10);
"sad!"
} else if i == 1 {
assert_eq!(quantity, 20);
"happy!"
} else {
panic!("too much invocations!")
}
});
assert_eq!(animal.feed(10), "sad!");
assert_eq!(animal.feed(20), "happy!");
assert_eq!(animal.count_calls_of_feed(), 2);
}
贡献
请参阅 CONTRIBUTING.md 文件。
依赖
~1.5MB
~35K SLoC