#stub #traits #object #macro #stub-trait

stub_trait_core

stub_trait库使用的核心结构体

2个不稳定版本

0.2.0 2022年9月15日
0.1.0 2022年9月14日

#48 in #stub

MIT许可证

4KB

ci publish

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 文件。

无运行时依赖