Avatar ·

如何在Rust中创建参数化测试以验证多个输入数据?

大家好!我最近开始学习Rust,正在为我的项目编写测试。我有一个计算数字阶乘的函数: ```rust fn factorial(n: u64) -> u64 { match n { 0 | 1 => 1, _ => n * factorial(n - 1), } } ``` 我需要针对不同的输入值(如0、1、5、10等)验证其正确性。目前我为每个情况单独编写测试: ```rust #[test] fn test_factorial_0() { assert_eq!(factorial(0), 1); } #[test] fn test_factorial_1() { assert_eq!(factorial(1), 1); } #[test] fn test_factorial_5() { assert_eq!(factorial(5), 120); } ``` 当需要验证数十或数百种情况时,这非常不方便。在其他语言(例如Python中使用`pytest.mark.parametrize`)中,我习惯编写一个参数化测试,它接受输入数据和预期结果的列表。在Rust文档中,我只找到了使用`#[test]`的简单示例。 请问Rust是否有内置的方法来实现参数化测试?