murf 0.2.0

A mocking and unit test framework for rust
Documentation
use murf::{action::Return, expect_method_call, mock};

#[derive(Debug, Eq, PartialEq)]
pub struct Data(usize);

trait Fuu {
    fn fuu(&self) -> Data;
}

mock! {
    #[derive(Default)]
    pub struct MyStruct;

    impl Fuu for MyStruct {
        fn fuu(&self) -> Data;
    }
}

#[test]
fn success() {
    let (handle, mock) = MyStruct::mock_with_handle();

    expect_method_call!(handle as Fuu, fuu()).will_once(Return(Data(1)));
    expect_method_call!(handle as Fuu, fuu()).will_once(Return(Data(2)));

    assert_eq!(Data(1), mock.fuu());
    assert_eq!(Data(2), mock.fuu());
}