#单元测试 #单元 #测试 #单元测试 #无 std

无 std tinytest

使用小型宏编写更紧凑的单元测试

2 个版本

0.1.1 2021 年 11 月 1 日
0.1.0 2021 年 11 月 1 日

#2547Rust 模式


用于 voila

MIT 许可证

5KB

用法

use tinytest::unit_test;

unit_test!(test1, || some_function_in_scope("test").unwrap(), "expected output")

在编译时自动转换为标准测试

#[cfg(test)]
mod test1 {
    use super::*;

    #[test]
    fn tiny_test() {
        assert_eq!(some_function_in_scope("test").unwrap(), "expected output");
    }
}

这也适用于更大的闭包

use tinytest::unit_test;

unit_test!(test2, || {
    let mut c = some_function_in_scope("test").unwrap().chars()
    c.next();
    c.next_back();
    (
        c.collect::<String>(),
        some_other_function_in_scope(73)
    )
}, (
    "expected output".to_string(),
    21
    )
)

这会转换为

#[cfg(test)]
mod test2 {
    use super::*;

    #[test]
    fn tiny_test() {
        assert_eq!(
            {
                let mut c = some_function_in_scope("test").unwrap().chars()
                c.next();
                c.next_back();
                (
                    c.collect::<String>(),
                    some_other_function_in_scope(73)
                )
            }, (
                "expected output".to_string(),
                21
            )
        );
    }
}

无运行时依赖