我有一个常量
const SIZE: usize = 8;
我还有一堆测试要做.有些测试是针对这个常数大于8时的,有些是针对小于8时的,因为我测试了一些特殊情况.我怎么能跳过基于这个的测试呢?
例如,一个这样的测试使用类型u8
,如果SIZE
大于8,则不能使用.
基于How to conditionally skip tests based on runtime information?,没有办法在运行时做到这一点,但既然我在编译时就拥有了所有东西,有没有一种方法看起来像这样
#[cfg(SIZE <= 8)]
是否仅在常量在正确范围内时才编译此测试?
测试示例
#[cfg(test)]
mod test {
use super::SIZE;
#[test]
fn will_panic_if_size_small() {
assert!(SIZE > 8);
}
#[test]
fn will_panic_if_size_big() {
assert!(SIZE <= 8);
}
}