Crates.io | s_test_fixture |
lib.rs | s_test_fixture |
version | 0.1.8 |
source | src |
created_at | 2021-09-29 11:55:17.845654 |
updated_at | 2022-02-06 04:54:07.202123 |
description | s_test_fixture or simple test fixture is a macro library to implement test fixture with no hassle |
homepage | |
repository | https://gitlab.com/constraintAutomaton/testing-utility |
max_upload_size | |
id | 458044 |
size | 27,782 |
s_test_fixture or simple test fixture is a macro library to implement test fixtures with no hassle.
There are four macros: before
, after
, before_each
, after_each
. The function pass as arguments must return ()
.
before
and after
are simply added before the test function.
before_each
and after_each
behave in a similar manner and stack with before
and after
macro. It has to be noted that the scope of the function pass as argument matter, it has to be visible inside the test module.
#[cfg(test)]
mod tests {
use s_test_fixture::before;
#[test]
#[before(function_to_run(2))]
fn test() {
let a = 2;
something();
assert_eq!(a,2);
println!("ending");
}
fn something(){}
fn function_to_run(i:i32){
println!("I did {} thing(s)",i);
}
}
will return
I did 2 thing(s)
ending
#[cfg(test)]
mod tests {
use s_test_fixture::after;
#[test]
#[after(function_to_run(66))]
fn test() -> Result<(), ()> {
println!("before");
let i = -55;
something();
if i == 0 {
something();
Ok(())
} else if i == 2 {
something();
return Ok(());
} else {
panic!("oh no!");
Ok(())
}
}
fn something(){}
fn function_to_run(i:i32){
println!("I did {} thing(s)",i);
}
}
will return
before
{panic statement}
I did 66 thing(s)
use s_test_fixture::{before_each,after, before};
#[cfg(test)]
#[before_each(function_to_run(78))]
mod tests {
use super::*;
#[test]
#[before(function_to_run(2))]
fn test() {
let a = 2;
something();
assert_eq!(a,2);
println!("ending");
}
fn something(){}
fn function_to_run(i:i32){
println!("I did {} thing(s)",i);
}
}
will return
I did 2 thing(s)
I did 78 thing(s)
ending
run
cargo test -- --test-threads 1