#testing #bdd #expect #assertions

nightly rustspec_assertions

BDD style assertion library

9 releases

Uses old Rust 2015

0.1.9 Apr 24, 2015
0.1.8 Apr 12, 2015
0.1.5 Feb 26, 2015
0.1.3 Jan 18, 2015
0.1.1 Nov 26, 2014

#7 in #expect

Download history 6/week @ 2022-03-09 25/week @ 2022-03-16 36/week @ 2022-03-23 7/week @ 2022-03-30 7/week @ 2022-04-06 10/week @ 2022-04-13 5/week @ 2022-04-20 78/week @ 2022-04-27 63/week @ 2022-05-04 145/week @ 2022-05-11 44/week @ 2022-05-18 54/week @ 2022-05-25 83/week @ 2022-06-01 23/week @ 2022-06-08 7/week @ 2022-06-15 25/week @ 2022-06-22

138 downloads per month
Used in rustspec

MIT license

364 lines

Rustspec-assertions build status

This is an attempt to port a syntax similar to rspec or chai to rust.

I find the errors rust's built-in assert! gives pretty limited, and I personally like this sort of syntax better so I decided to start this as learning exercise.


You'll need to use rust's nightly builds, as the beta/stable builds don't support the syntax extensions yet.

Add this as a dependency to your Cargo.toml and run cargo build:

git = "https://github.com/uorbe001/rustspec-assertions.git"

Now you should be able to use these assertions in your tests by 'using' them:

#[phase(plugin, link)] extern crate rustspec_assertions;
use self::rustspec_assertions::{expect, be_le, eq, be_lt, be_gt, be_ge, contain, be_true, be_false, be_some, be_none};

fn be_le_int_test() {

fn eq_f64_test() {

The crate relies on macros to be able to report better errors, so you'll need to add this to your test.rs, lib.rs or main.rs file:



Here are some of the matchers already implemented:

expect(2i).not_to(eq!(3i)); // not_to works with all the matchers
expect(vec![1i, 2i]).to(contain!(2i));

For a complete list of matchers and more examples, please check the tests.

Rustspec Note

This is designed to work with rustspec so I might end up making decisions further down the line to improve error reporting which might not be ideal for other options.

No runtime deps