Я хочу написать тестовые примеры, зависящие от параметров. Мой тестовый пример должен быть выполнен для каждого параметра, и я хочу посмотреть, будет ли он успешным или неудачным для каждого параметра.
Я привык писать такие вещи на 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);
}
Примечание. Я хочу, чтобы параметры были максимально гибкими, например: читайте их из файла или используйте все файлы из определенного каталога в качестве входных данных и т.д. Таким образом, жестко запрограммированный макрос может оказаться недостаточным.