Skip to content

Latest commit

 

History

History
221 lines (163 loc) · 11.1 KB

README.md

File metadata and controls

221 lines (163 loc) · 11.1 KB

Assertables: Rust crate of assert macros for testing

Assertables is a Rust crate of assert macros to improve you compile-time testing and run-time reliability.

Introduction

The Assertables Rust crate provides many assert macros that can help you develop, test, and debug.

To use this crate, add it to your file Cargo.toml:

assertables = "9.5.0"

Benefits:

  • You can write better tests to improve reliability and maintainability.
  • You can handle more corner cases without needing to write custom code.
  • You can troubleshoot faster because error messages show more detail.

Learning: FAQ, docs, examples, changes, upgrades, developing.

Comparisons: more_asserts, cool_asserts, assert2, claims, etc.

Examples

Examples with numbers:

let i = 10;
assert_lt!(i, 11);
assert_in_range!(i, 1..100);
assert_abs_diff_eq!(i, 12, 2);

Examples with strings:

let s = "hello";
assert_starts_with!(s, "h");
assert_contains!(s, "e");
assert_is_match!(Regex::new(r"h.*o").unwrap(), s);

Examples with arrays:

let a = [1, 2, 3];
assert_not_empty!(a);
assert_len_eq_x!(a, 3);
assert_all!(a.into_iter(), |i: i32| i < 4);

Highlights

Values:

Approximations:

Groups:

Matching:

Results:

Options:

Polls:

Readers:

Collections:

Commands:

Status:

Infix:

For a complete list of modules and macros, see the docs.

Forms

All the macros have forms for an optional message:

All the macros have forms for different outcomes:

Many of the macros have a form "compare left item to right item" that compares items of the same kind, and a form "compare left item to right expression" that compares one item to any arbitrary expression:

Many of the macros has a "success return", which means the macro returns data that you can optionally use for more testing.

Tracking

  • Package: assertables-rust-crate
  • Version: 9.5.0
  • Created: 2021-03-30T15:47:49Z
  • Updated: 2024-11-05T16:40:19Z
  • License: MIT or Apache-2.0 or GPL-2.0 or GPL-3.0 or contact us for more
  • Contact: Joel Parker Henderson ([email protected])