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