| Crates.io | speculate2 |
| lib.rs | speculate2 |
| version | 0.2.0 |
| created_at | 2022-11-27 10:18:33.235884+00 |
| updated_at | 2022-11-27 10:18:33.235884+00 |
| description | An updated fork of `speculate`, an RSpec inspired minimal testing framework for Rust. |
| homepage | |
| repository | https://github.com/alexobolev/speculate-rs |
| max_upload_size | |
| id | 723653 |
| size | 21,955 |
An RSpec inspired minimal testing framework for Rust. (This is an updated and partially rewritten fork for Rust 2021, with updated dependencies and removed unstable functionality.)
Add speculate to the dev-dependencies section of your Cargo.toml:
[dev-dependencies]
speculate2 = "0.2"
And add the following to the top of the Rust file you want to add tests for:
#[cfg(test)]
use speculate2::speculate; // Must be imported into the current scope.
Speculate provides the speculate! syntax extension.
Inside speculate! { ... }, you can have any "Item", like static, const,
fn, etc, and 5 special types of blocks:
describe (or its alias context) - to group tests in a hierarchy, for
readability. Can be arbitrarily nested.
before and after - contain setup / teardown code that's inserted
before / after every sibling and nested it block.
it (or its alias test) - contains tests.
For example:
it "can add 1 and 2" {
assert_eq!(1 + 2, 3);
}
You can optionally add attributes to this block:
#[ignore]
test "ignore" {
assert_eq!(1, 2);
}
#[should_panic]
test "should panic" {
assert_eq!(1, 2);
}
#[should_panic(expected = "foo")]
test "should panic with foo" {
panic!("foo");
}
Licensed same as the original repository, under MIT License. A copy can be found in the repo root.