Macro quickcheck::quickcheck[][src]

macro_rules! quickcheck {
    (@ as_items $($i : item) *) => { ... };
    {
    $($(#[$m : meta]) * fn $fn_name :
      ident($($arg_name : ident : $arg_ty : ty), *) -> $ret : ty
      { $($code : tt) * }) *
} => { ... };
}
Expand description

A macro for writing quickcheck tests.

This macro takes as input one or more property functions to test, and produces a proper #[test] function for each property. If the property fails, the behavior is as if quickcheck were called on the property (i.e., it panics and fails the test).

Note that this macro doesn’t support mut or patterns in parameters.

Example

quickcheck! {
    fn prop_reverse_reverse(xs: Vec<usize>) -> bool {
        let rev: Vec<_> = xs.clone().into_iter().rev().collect();
        let revrev: Vec<_> = rev.into_iter().rev().collect();
        xs == revrev
    }
};