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
:
toml
[dev-dependencies]
speculate2 = "0.2"
And add the following to the top of the Rust file you want to add tests for:
```rust
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:
rust
it "can add 1 and 2" {
assert_eq!(1 + 2, 3);
}
You can optionally add attributes to this block:
```rust
test "ignore" { assert_eq!(1, 2); }
test "should panic" { assert_eq!(1, 2); }
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.