我想编写依赖于参数的测试用例。我的测试用例应该针对每个参数执行,我想看看它是否针对每个参数成功或失败。
我习惯用 Java 写这样的东西:
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 }
});
}
private int fInput;
private int fExpected;
public FibonacciTest(int input, int expected) {
fInput= input;
fExpected= expected;
}
@Test
public void test() {
assertEquals(fExpected, Fibonacci.compute(fInput));
}
}
如何使用 Rust 实现类似的功能?简单的测试用例工作得很好,但是在某些情况下它们是不够的。
#[test]
fn it_works() {
assert!(true);
}
注意: 我希望参数尽可能灵活,例如: 从文件中读取它们,或者使用某个目录中的所有文件作为输入,等等。所以硬编码的宏可能还不够。