#默认 #测试 #单元测试 #模拟 #实例 # #用户

default-test

一个可在测试中使用的默认特性

2 个版本

0.1.1 2021 年 1 月 6 日
0.1.0 2021 年 1 月 6 日

#2688Rust 模式

每月 28 次下载

MIT 许可证

9KB
93

default-test-rs

提供了一个类似于 Default 的 Rust 特性,可在测试中使用。

通常测试需要构建结构体的模拟实例。例如

struct User {
    id: usize,
    name: String,
    email: String,
    admin: bool
}

虽然定义 Default 很诱人,但测试通常需要为不应在生产代码中使用的类型提供模拟值。有时,测试需要为甚至未实现 Default 的类型提供值。

此 crate 提供了 DefaultTest,一个可以提供具有模拟值的默认实例的特性。

impl DefaultTest for User {
    fn default_test() -> Self {
        User {
            id: 0,
            name: "name".into(),
            email: "email".into(),
            admin: false
        }
    }
}

单元测试可以使用展开运算符来构建值

mod tests {
    #[test]
    fn test() {
        let user = User {
            id: 99
            ..User::test_default()
        };
        // ...
    }
}

路线图

  • 派生宏,用于填充在单元测试实现中可能有用的合理默认值。字符串文件将填充其属性名称,其他类型可以使用 T::default() 或唯一值。

无运行时依赖