Skip to content

Postfix assertion library for Rust

License

Notifications You must be signed in to change notification settings

should-rs/should

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

should

should is a postfix assertion library for Rust, heavily inspired by Shouldly. It aims to make writing assertions feel more natural, while also providing clear error messages.

It does this by generically implementing assertion traits, while also utilizing stack traces to reconstruct the original expression:

fn multiply(x: i32, y: i32) -> i32 {
    x + y // Oh no a bug!
}

#[test]
fn test_multiply() {
    multiply(3, 5).should_be(15);
}
panicked at 'multiply(3, 5) should be 15 but was 8'

Assertions

Implemented for T: PartialEq as well as Ok(T) and Some(T)

  • should_be
  • should_not_be

Implemented for T: PartialOrd as well as Ok(T) and Some(T)

  • should_be_lt
  • should_be_le
  • should_be_gt
  • should_be_ge

Implemented for Option<T>

  • should_be_some
  • should_be_none

Implemented for Result<T, E>

  • should_be_ok
  • should_be_err

Implemented for str

  • should_start_with
  • should_not_start_with
  • should_end_with
  • should_not_end_with

Implemented for T: IntoIterator

  • should_be_empty
  • should_not_be_empty

All asserted types are required to have implemented the Debug trait.

About

Postfix assertion library for Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages