goldie 0.2.0

Simple golden file testing
Documentation

goldie

Crates.io Version Docs.rs Latest

Simple golden file testing for Rust.

goldie::assert!(text);

🚀 Getting started

Add the following to your Cargo manifest.

[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.

#[test]
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.

use serde_json::json;

#[test]
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)
}

License

Licensed under either of

at your option.