use galvanic_test::{fixture, TestFixture};
fixture!( test_fixture(x: i32, y: i32) -> i32 {
params {
vec![(1,1), (2,4), (3,6)].into_iter()
}
setup(&mut self) {
self.x * self.y
}
});
#[test]
fn should_generate_multiple_fixtures() {
let cases = test_fixture::parameters()
.expect("A case iterator should be returned")
.map(|p| {
let mut f = test_fixture::new(&p);
let b = f.setup();
(b.val, b.params.y - b.params.x)
})
.collect::<Vec<_>>();
assert_eq!(cases.len(), 3);
assert_eq!(cases[0].0, 1);
assert_eq!(cases[0].1, 0);
assert_eq!(cases[1].0, 8);
assert_eq!(cases[1].1, 2);
assert_eq!(cases[2].0, 18);
assert_eq!(cases[2].1, 3);
}
#[test]
fn should_get_fixture_parameters() {
assert_eq!(test_fixture::parameters().unwrap().collect::<Vec<_>>(),
vec![(1,1), (2,4), (3,6)]);
}