Shiny makes you less distracted with copying over initialization code in test cases. It also has a fancy syntax similar to Ruby's RSpec or Objective-C's Kiwi.
Install in the usual way with cargo.
Add the shiny
crate:
#![feature(plugin)]
#![plugin(shiny)]
Write your shiny test case:
#[cfg(test)]
mod test {
describe!(
before_each {
let awesome = true;
}
it "is awesome" {
assert!(awesome);
}
it "injects before_each into all test cases" {
let still_awesome = awesome;
assert!(still_awesome);
}
)
}
All the items from before_each
are inserted as-is into each generated test case function. Mind the final semicolon in before_each block
!
- add support for
context
to do recursive prologue injections - better filtering for test case name
Shiny is distributed under Apache-2.0, see LICENSE for more details.