Simple golden file testing for Rust.
rust
goldie::assert!(text);
Add the following to your Cargo manifest.
toml
[dev-dependencies]
goldie = "0.1"
In your test function assert the contents using goldie::assert!
. The golden
filename will be automatically determined based on the test file and test
function name. Run tests with GOLDIE_UPDATE=true
to automatically update
golden files.
```rust
fn example() { let text = { /* ... run the test ... */ }
// assert that the contents of ./testdata/example.golden
// are equal to `text`
goldie::assert!(text)
} ```
Templated golden files are also supported using goldie::assert_template!
.
Something implementing serde::Serialize
needs to be provided as context in
order to render the template. Values are rendered using
TinyTemplate e.g. {value.field}
.
You cannot use GOLDIE_UPDATE=true
to automatically update templated golden
files.
```rust use serde_json::json;
fn example() { let text = { /* ... run the test ... */ }
// assert that the contents of ./testdata/example.golden
// are equal to `text` after rendering with `ctx`.
let ctx = json!({"value": "Hello World!"});
goldie::assert_template!(&ctx, text)
} ```
Licensed under either of
at your option.