Skip to content

SixArm/assertables-rust-crate

Repository files navigation

Assertables: Rust crate of assert macros for testing

Assertables is a Rust crate that provides many assert macros to improve your compile-time tests 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.4.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.

Features:

  • Easy to use: everything is well-documented with runnable examples.
  • Zero overhead: if you don't use a macro, then it's not compiled.
  • Multiple forms: for panic, debug, result return, success return.

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_gt!(i, 9);
assert_in_range!(i, 1..100);
assert_abs_diff_eq!(i, 12, 2);

Examples with strings:

let s = "hello world";
assert_starts_with!(s, "hello");
assert_ends_with!(s, "world");
assert_contains!(s, " ");
assert_is_match!(Regex::new(r"h.* w.*").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);
assert_any!(a.into_iter(), |i: i32| i > 2);

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.4.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])

About

Assertables: a Rust crate of assert macros for testing

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages