Crates.io | assertables |
lib.rs | assertables |
version | 9.3.0 |
source | src |
created_at | 2021-04-03 19:32:43.093705 |
updated_at | 2024-11-03 21:07:37.998963 |
description | Assertables: assert macros for better testing, debugging, quality assurance, and runtime reliability. |
homepage | |
repository | https://github.com/sixarm/assertables-rust-crate/ |
max_upload_size | |
id | 378431 |
size | 15,782,027 |
Assertables is a Rust crate that provides many assert macros to improve your compile-time tests and run-time reliability.
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.3.0"
Benefits:
Features:
Learning: FAQ, examples, changes, upgrades, docs.
Comparisons: more_asserts, cool_asserts, assert2, claims, etc.
Values:
assert_eq!(a, b)
≈ a = bassert_ne!(a, b)
≈ a ≠ bassert_lt!(a, b)
≈ a < bassert_le!(a, b)
≈ a ≤ bassert_gt!(a, b)
≈ a > bassert_ge!(a, b)
≈ a ≥ bApproximations:
assert_approx_eq!(a, b)
≈ |a-b| ≤ 1e-6assert_abs_diff_eq!(a, b, delta)
≈ |a-b| = Δassert_in_delta!(a, b, delta)
≈ |a-b| ≤ Δassert_in_epsilon!(a, b, epsilon)
≈ |a-b| ≤ ε min(a,b)Groups:
assert_all!(group, predicate)
≈ group.all(predicate)assert_any!(group, predicate)
≈ group.any(predicate)assert_is_empty!(group)
≈ a.is_empty()assert_len_eq!(a, b)
≈ a.len() = b.len()assert_count_eq!(a, b)
≈ a.count() = b.count()Matching:
assert_starts_with!(sequence, x)
≈ sequence.starts_with(x)assert_ends_with!(sequence, x)
≈ sequence.ends_with(x)assert_contains!(container, x)
≈ container.contains(x)assert_is_match!(matcher, x)
≈ matcher.is_match(x)assert_matches!(expr, pattern)
≈ matches!(expr, pattern)Results:
assert_ok!(a)
≈ a is Okassert_err!(a)
≈ a is Errassert_ok_eq_x!(a, x)
≈ a is Ok unwrap = xOptions:
assert_some!(a)
≈ a is Someassert_none!(a)
≈ a is Noneassert_some_eq_x!(a, x)
≈ a is Some unwrap = xPolls:
assert_ready!(a)
≈ a is Readyassert_pending!(a)
≈ a is Pendingassert_ready_eq_x!(a, x)
≈ a is Ready unwrap = xReaders:
assert_fs_read_to_string_eq!(a_path, b_path)
≈ (a_path ⇒ string) = (b_path ⇒ string)assert_io_read_to_string_eq!(a_bytes, b_bytes)
≈ (a_bytes ⇒ string) = (b_bytes ⇒ string)Collections:
assert_iter_eq!(a, b)
≈ a into iter = b into iterassert_set_eq!(a, b)
≈ a into set = b into setassert_bag_eq!(a, b)
≈ a into bag = b into bagInfix notation:
assert_infix!(a == b)
≈ order operators == != < <= > >=assert_infix!(a && b)
≈ logic operators && || ^ & |For a complete list of modules and macros, see the docs.
All the macros have forms for an optional message:
assert_gt!(a, b)
≈ default messageassert_gt!(a, b, "your text")
≈ custom messageAll the macros have forms for different outcomes:
assert_gt!(1, 2)
≈ panicassert_gt_as_result!(1, 2)
≈ Result Errdebug_assert_gt!(a, b)
≈ panic in debug modeMany 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:
assert_len_eq!(a, b)
≈ a.len() = b.len()assert_len_eq_x!(a, x)
≈ a.len() = xMany of the macros has a "success return", which means the macro returns data that you can optionally use for more testing.