Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[derive(Debug, PartialEq)]
- struct MyError {}
- fn test_me(return_err: bool) -> Result<u32, MyError> {
- if return_err {
- return Err(MyError{});
- }else {
- return Ok(5);
- }
- }
- #[cfg(test)]
- mod test {
- use super::*;
- macro_rules! test_cases {
- ($($name:ident: $value:expr,)*) => {
- $(
- #[test]
- fn $name() {
- let (return_err, expected) = $value;
- let result = test_me(return_err);
- match expected {
- Ok(_) => assert!(result.is_ok()), // just make sure it's ok
- Err(_) => assert_eq!(result.unwrap_err(), expected.unwrap_err()) // actually compare the error
- }
- }
- )*
- }
- }
- test_cases! {
- test_0: (false, Ok(())), // I expect an Ok, but I don't care about the value
- test_1: (true, Err(MyError{})), // I expect an error
- }
- }
Add Comment
Please, Sign In to add comment