mod basic_suite {
use generate_test_macro::generate_test_macro;
pub struct TestSuite<T: ToString> {
pub param1: usize,
pub param2: T,
}
#[generate_test_macro(basic_suite)]
impl<T: ToString> TestSuite<T> {
pub fn new(param1: usize, param2: T) -> Self {
Self { param1, param2 }
}
#[test]
pub fn param1_is_correct(&self) {
assert_eq!(self.param1, 10);
}
#[test]
pub fn param2_is_correct(&self) {
assert_eq!(self.param2.to_string(), "hello");
}
}
}
use basic_suite::TestSuite;
basic_suite!(run_basic_suite_method: TestSuite<String> = TestSuite::new(10, "hello".to_string()));
basic_suite!(run_basic_suite_literal: TestSuite<String> = TestSuite { param1: 10, param2: "hello".to_string() });
basic_suite!(run_basic_suite_method_abbreviated = TestSuite::new(10, "hello".to_string()));
basic_suite!(
run_basic_suite_literal_abbreviated = TestSuite {
param1: 10,
param2: "hello".to_string()
}
);