rxpect

Crates.iorxpect
lib.rsrxpect
version0.1.1
sourcesrc
created_at2023-10-09 19:51:06.505316
updated_at2023-10-09 19:54:07.358059
descriptionExtensible fluent expectations for Rust
homepage
repositoryhttps://github.com/raniz85/rxpect
max_upload_size
id998406
size27,192
Raniz Daniel Raneland (Raniz85)

documentation

https://docs.rs/rxpect

README

RXpect

A Rust library for fluently building expectations in tests.

Another library for fluent assertions?

None of the other libraries worked quite like I wanted them to. I also wanted to test my ideas about how a fluent assertion library in Rust could work.

What about the name?

All other names I could come up with were already taken.

What does it mean?

Either Rust Expect or Raniz Expect, pick whichever you like best.

How do I use this thing?

It's pretty simple actually, wrap whatever you're having expectations on with expect and then call the different extension methods.

use rexpect::expect;
use rexpect::expectations::EqualityExpectations;

// Expect 1 plus 1 to equal 2
expect(1 + 1).to_equal(2);
running 1 test
test tests::that_one_plus_one_equals_two ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Failures are neatly reported:

use rexpect::expect;
use rexpect::expectations::EqualityExpectations;

// Expect 1 plus 1 to equal 3
expect(1 + 1).to_equal(3);
thread 'main' panicked at 'Expectation failed (expected == actual)
expected: `3`
  actual: `2`'

I don't like it

Use something else. Here's a bunch of other crates that also does fluent expectations, in no particular order:

Commit count: 9

cargo fmt