3 unstable releases
Uses old Rust 2015
| 0.2.0 | Aug 24, 2019 |
|---|---|
| 0.1.1 | May 13, 2019 |
| 0.1.0 | Jun 23, 2018 |
#31 in #tdd
425 downloads per month
17KB
272 lines
Spy 
Spy crate is inspired by such famous Javascript testing tools as Jasmine and Sinon.js. It provides easy configurable spies with predefined behaviour.
#[test]
fn iterator_all_test() {
let integers = vec![0i32, 1i32, 2i32];
// create spy function that returns true if provided
// argument is an even number
let (spy_fn, spy) = spy!(|n| n % 2 == 0);
// test call
let res = integers.iter().all(spy_fn);
// check Iterator::all result
assert!(!res, "should be false");
// take a snapshot of made calls
let snapshot = spy.snapshot();
// make assertions
assert!(snapshot.called(), "should be called");
assert!(
snapshot.called_with(&(&1i32)),
"should be called with 1i32 at least once"
);
assert!(
!snapshot.each_called_with(&(&1i32)),
"should be called with different arguments"
);
assert_eq!(snapshot.all_calls(), &vec![(&0i32), (&1i32)]);
assert_eq!(snapshot.first_call().expect("should be Some"), &(&0i32));
assert_eq!(snapshot.last_call().expect("should be Some"), &(&1i32));
assert_eq!(snapshot.nth_call(1).expect("should be Some"), &(&1i32));
}
LICENSE
Spy is licensed under MIT and Apache-2.0 license