5 个不稳定版本
0.3.1 | 2023 年 12 月 10 日 |
---|---|
0.3.0 | 2022 年 5 月 15 日 |
0.2.1 | 2021 年 12 月 11 日 |
0.2.0 | 2020 年 12 月 22 日 |
0.1.0 | 2020 年 9 月 7 日 |
316 在 测试 中排名 #316
199,546 每月下载量
用于 37 个 Crates (直接使用 31 个)
15KB
217 行
mockall_double
一个与 Mockall 一起工作的良好的双测试适配器。
概述
Mockall 可以轻松创建结构体的模拟版本。但是,如何让被测试的代码使用模拟结构体而不是真实结构体呢?在 Rust 中,需要在编译时替换真实结构体。这通过几个 #[cfg(test)]
语句来完成。但是 mockall_double 使得这更加简单。
用法
通常 mockall
只在单元测试中使用,因此它可以是开发依赖项。但是 mockall_double
必须是完整依赖项。要这样使用,请将以下内容添加到您的 Cargo.toml
[dependencies]
mockall_double = "0.3.1"
[dev-dependencies]
mockall = "0.12.0"
然后可以这样使用
use mockall_double::double;
mod mockable {
#[cfg(test)]
use mockall::automock;
pub struct Foo {}
#[cfg_attr(test, automock)]
impl Foo {
pub fn foo(&self, x: u32) -> u32 {
// ...
0
}
}
}
#[double]
use mockable::Foo;
fn bar(f: Foo) -> u32 {
f.foo(42)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn bar_test() {
let mut mock = Foo::new();
mock.expect_foo()
.returning(|x| x + 1);
assert_eq!(43, bar(mock));
}
}
有关更多信息,请参阅 API 文档。
最低支持的 Rust 版本 (MSRV)
mockall_double
使用与 Mockall 本身相同的 MSRV 进行测试。目前,这是 Rust 1.42.0。除非增加主版本或次版本号,否则 mockall_double
的 MSRV 不会在未来更改。
许可证
mockall_double
主要根据 MIT 许可证和 Apache 许可证(版本 2.0)的条款进行分发。
有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT
致谢
mockall_double
受 Jason Grlicky 的 double crate 的启发,但经过调整以更好地与 Mockall 的命名约定一起工作。
依赖项
~270–720KB
~17K SLoC