Guest User

Untitled

a guest
Apr 19th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #[derive(Debug, PartialEq)]
  2. struct MyError {}
  3.  
  4. fn test_me(return_err: bool) -> Result<u32, MyError> {
  5. if return_err {
  6. return Err(MyError{});
  7. }else {
  8. return Ok(5);
  9. }
  10. }
  11.  
  12. #[cfg(test)]
  13. mod test {
  14. use super::*;
  15.  
  16. macro_rules! test_cases {
  17. ($($name:ident: $value:expr,)*) => {
  18. $(
  19. #[test]
  20. fn $name() {
  21. let (return_err, expected) = $value;
  22.  
  23. let result = test_me(return_err);
  24.  
  25. match expected {
  26. Ok(_) => assert!(result.is_ok()), // just make sure it's ok
  27. Err(_) => assert_eq!(result.unwrap_err(), expected.unwrap_err()) // actually compare the error
  28. }
  29. }
  30. )*
  31. }
  32. }
  33.  
  34. test_cases! {
  35. test_0: (false, Ok(())), // I expect an Ok, but I don't care about the value
  36. test_1: (true, Err(MyError{})), // I expect an error
  37. }
  38. }
Add Comment
Please, Sign In to add comment