s_test_fixture 0.1.4

s_test_fixture or simple test fixture is a macro library to implement test fixture with no hassle
Documentation
use s_test_fixture::{after, after_each, before, before_each};

#[cfg(test)]
#[after_each(validate())]
#[before_each(function_to_run(11))]
mod tests_after_before_each {
    use std::fs::{remove_file, File, OpenOptions};
    use std::io::prelude::*;

    #[test]
    fn simple_test_after_each() {
        something();
        assert_eq!(
            format!(
                "{msg_fixture}\n{msg}\n",
                msg = MSG,
                msg_fixture = MSG_FIXTURE
            ),
            read_test_file()
        );
    }
    fn something() {
        let mut file = OpenOptions::new()
            .write(true)
            .append(true)
            .open(format!("{}.txt", 11))
            .unwrap();

        writeln!(file, "{}", MSG).unwrap();
    }

    fn read_test_file() -> String {
        let mut file = File::open(format!("{}.txt", 11)).unwrap();
        let mut contents = String::new();
        file.read_to_string(&mut contents).unwrap();
        contents
    }

    fn validate() {
        remove_file(format!("{}.txt", 11)).unwrap();
        match File::open(format!("{}.txt", 11)) {
            Err(_) => (),
            Ok(_) => panic!("the file should be deleted"),
        }
    }
    fn function_to_run(n: i32) {
        let mut file = File::create(format!("{}.txt", n)).unwrap();
        let msg = format!("{}\n", MSG_FIXTURE);
        file.write_all(msg.as_bytes()).unwrap();
    }
    const MSG: &'static str = "something was done";
    const MSG_FIXTURE: &'static str = "before fixture";
}

#[cfg(test)]
mod tests_after_before {
    use super::*;
    use std::fs::{remove_file, File, OpenOptions};
    use std::io::prelude::*;

    #[test]
    #[before(function_to_run(77))]
    #[after(validate())]

    fn simple_test_after_each() {
        something();
        assert_eq!(
            format!(
                "{msg_fixture}\n{msg}\n",
                msg = MSG,
                msg_fixture = MSG_FIXTURE
            ),
            read_test_file()
        );
    }
    fn something() {
        let mut file = OpenOptions::new()
            .write(true)
            .append(true)
            .open(format!("{}.txt", 77))
            .unwrap();

        writeln!(file, "{}", MSG).unwrap();
    }

    fn read_test_file() -> String {
        let mut file = File::open(format!("{}.txt", 77)).unwrap();
        let mut contents = String::new();
        file.read_to_string(&mut contents).unwrap();
        contents
    }

    fn validate() {
        remove_file(format!("{}.txt", 77)).unwrap();
        match File::open(format!("{}.txt", 77)) {
            Err(_) => (),
            Ok(_) => panic!("the file should be deleted"),
        }
    }
    fn function_to_run(n: i32) {
        let mut file = File::create(format!("{}.txt", n)).unwrap();
        let msg = format!("{}\n", MSG_FIXTURE);
        file.write_all(msg.as_bytes()).unwrap();
    }
    const MSG: &'static str = "something was done";
    const MSG_FIXTURE: &'static str = "before fixture";
}