Use the #[test] attribute on helper functions and place shared utilities in a tests module or a separate crate to reuse them across your test suite.
#[cfg(test)]
mod tests {
use super::*;
// Shared helper function
fn setup_data() -> Vec<i32> {
vec![1, 2, 3]
}
#[test]
fn test_helper_usage() {
let data = setup_data();
assert_eq!(data.len(), 3);
}
#[test]
fn test_another_helper_usage() {
let data = setup_data();
assert!(data.contains(&2));
}
}
For larger projects, create a separate crate (e.g., test-utils) and add it as a dev-dependency in Cargo.toml, then import it with use test_utils::setup_data;.