4 releases
| 0.1.3 | Oct 3, 2025 |
|---|---|
| 0.1.2 | Oct 1, 2024 |
| 0.1.1 | Jul 20, 2024 |
| 0.1.0 | Sep 1, 2023 |
#1289 in Testing
573 downloads per month
Used in 2 crates
17KB
136 lines
typed_test_gen
Rust crate for defining a macro that automatically specializes generic tests on provided types. This is useful
when we want to write identical tests with different underlying types. This crate provide the syntax #[test_with(Type1, Type2)]
which will instantiate 2 tests: one on Type1, the other on Type2. Those types could be any path to any generic type like
module::something::Type<Gen>.
An example is better than words:
#[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);
}
This code will generate 3 tests function: _specialized__test_vec__u32_, _specialized__test_vec__u64_, and _specialized__test_vec__char_.
This support adding the attribute #[should_panic] to the definition.
#[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);
}
Dependencies
~135–530KB
~13K SLoC