pytest
clone for Rustrstest
use procedural macro to implement simple fixtures and table
based tests. To use it you need at least 1.30 toolchain and add follow
lines to your Cargo.toml
file:
[dev-dependencies]
rstest = "0.3"
The core idea is that every input arguments of your test function will be resolved by call a function with the same name. Example:
```rust
extern crate rstest;
use rstest::rstest;
pub fn fixture() -> u32 { 42 }
fn shouldsuccess(fixture: u32) { asserteq!(fixture, 42); }
fn shouldfail(fixture: u32) { assertne!(fixture, 42); } ```
Moreover you can use rstest_parametrize
macro to implement table
based tests. An example is the best way to explain it
```rust
extern crate rstest;
use rstest::rstest_parametrize;
expected, input, case(4, "ciao"), case(3, "Foo") )] fn strlentest(expected: usize, input: &str) { asserteq!(expected, input.len()); } ```
You can learn more on Docs and
find more examples in resources
directory and in
rs8080
that use this module intensely.
Licensed under either of
Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.