expectest
[]
(https://travis-ci.org/zummenix/expectest)
Crate provides matchers and matcher functions for unit testing. Inspired by Nimble for Swift.
Using this library you will receive nice messages with data that used in test case, example:
let result = vec!;
expect!.to;
Test fails and gives us a message:
expected to be equal to <[1, 2, 3]>, got <[1, 2, 2]>
Note: You need to use
cargo test -- --nocaptureto see output from tests.
Usage
In Cargo.toml:
[]
= "*"
In your crate:
extern crate expectest;
You can export all needed functions and types from prelude module:
use *;
Expectations
Use basic syntax to express expectations:
expect!.to;
expect!.to_not;
expect!.not_to;
Note: You can use
expectfunction instead ofexpect!macro in that case you will not see file and line where the test fails.
Equality
For types that implement the PartialEq trait:
expect!.to;
Closeness of float numbers
There is a way to check if two float numbers are close each other:
expect!.to;
With default delta equal 0.001:
expect!.to;
Order
For types that implement the PartialOrd trait:
expect!.to;
Use following matchers: be_less_than, be_less_or_equal_to, be_greater_than, be_greater_or_equal_to
Option
There are matchers for the Option<T> type:
expect!.to;
Use following matchers: be_some, be_none
Result
There are matchers for the Result<T, E> type:
expect!.to;
Use following matchers: be_ok, be_err
Emptyness
There is be_empty matcher for types that implement IsEmpty trait:
expect!.to;
Note:
IsEmptytrait implemented by library for following types:String,&str,Vec<T>,&[T].
Boolean
expect!.to;
Use following matchers: be_true, be_false
Alternative crates
License
MIT