Crates.io Crates.io 1.49+ Docs.rs MIT License Build Status Maintenance

Test Case

Overview

test_case crate provides procedural macro attribute that generates parametrized test instances.

Getting Started

Crate has to be added as a dependency to Cargo.toml:

toml [dev-dependencies] test-case = "2.2.2"

and imported to the scope of a block where it's being called (since attribute name collides with rust's built-in custom_test_frameworks) via:

rust use test_case::test_case;

Example usage:

```rust

[cfg(test)]

mod tests { use testcase::testcase;

#[test_case(-2, -4 ; "when both operands are negative")]
#[test_case(2,  4  ; "when both operands are positive")]
#[test_case(4,  2  ; "when operands are swapped")]
fn multiplication_tests(x: i8, y: i8) {
    let actual = (x * y).abs();

    assert_eq!(8, actual)
}

} ```

Output from cargo test for this example:

```sh $ cargo test

running 4 tests test tests::multiplicationtests::whenbothoperandsarenegative ... ok test tests::multiplicationtests::whenbothoperandsarepositive ... ok test tests::multiplicationtests::whenoperandsareswapped ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ```

Documentation

Most up to date documentation is available in our wiki.

License

Licensed under of MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)

Contributing

Project roadmap is available at link. All contributions are welcome.

Recommended tools: * cargo readme - to regenerate README.md based on template and lib.rs comments * cargo insta - to review test snapshots * cargo edit - to add/remove dependencies * cargo fmt - to format code * cargo clippy - for all insights and tips * cargo fix - for fixing warnings