2 个版本
0.1.1 | 2024年7月20日 |
---|---|
0.1.0 | 2023年9月1日 |
604 在 测试
每月下载量 493
在 twibint 中使用
16KB
101 代码行
typed_test_gen
Rust crate,用于定义一个宏,该宏自动针对提供的类型专门化泛型测试。当我们想编写具有不同底层类型的相同测试时,这很有用。此 crate 提供了 #[test_with(Type1, Type2)]
语法,它将实例化 2 个测试:一个在 Type1
上,另一个在 Type2
上。这些类型可以是任何泛型类型的路径,例如 module::something::Type<Gen>
。
示例胜于言辞
#[test_with(u32, u64, char)]
fn test_vec<T>() {
let vec = Vec::<T>::with_capacity(10);
assert_eq!(vec.len(), 0);
assert!(vec.capacity() >= 10);
}
此代码将生成 3 个测试函数:_specialized__test_vec__u32_
、_specialized__test_vec__u64_
和 _specialized__test_vec__char_
。
此功能支持在定义中添加属性 #[should_panic]
。
#[test_with(u32, u64, char)]
#[should_panic]
fn test_vec_fail<T>() {
let vec = Vec::<T>::with_capacity(10);
assert_eq!(vec.len(), 0);
assert!(vec.capacity() < 10);
}
依赖关系
~270–720KB
~17K SLoC