snaptest
Dead simple snapshot testing (inspired by jest).
Documentation (including this README) is a work in progress. Feel free to submit an issue if you have a question about usage.
Features
- Any type that implements
Debugcan be returned from a test. - First class integration with
failure. - The snapshot store is thread safe so your tests can run in parallel.
- Beautiful diffs are printed when a snapshot test fails.
- A single small binary file is used to store snapshots.
TODO
Installation
First, add snaptest to the dependencies section of your Cargo.toml:
[]
= "0.1"
Next, add the following snippet to the entry point of your crate (lib.rs or main.rs):
extern crate snaptest;
Usage
Derive Debug on types that you want to use with snaptest:
use FromStr;
Now, in the test module for the User struct:
snaptest!
Next time your test runs, a snapshot will be added to a local .snapfile to compare against future test results. If you get a different result back than what matches the snapshot, the test will fail and the diff will be printed to the console.

License
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.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.