/diff

diff contains git-style diff generation helpers, particularly useful for tests.

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

diff

Coverage Status

diff contains git-style diff generation helpers, particularly useful for tests.

Install

go get oss.terrastruct.com/diff

Usage

diff.Strings

Tired of ugly "expected" vs "actual" test outputs? diff.Strings gives you git-style diffs:

exp := ...
actual := YourFunction()
diffs, err := diff.Strings(exp, actual)
if ds != "" {
  t.Fatalf("unexpected result: %s", ds)
}

diff.Testdata

Sometimes the expected is not a simple string to include in your test. Sometimes it's a long JSON blob that you want to compare. Use diff.Testdata to easily store and compare test results to saved files.

err := diff.Testdata("test_results", actual)
if err != nil {
  t.Fatal(err)
}

An example of this is the first image in this README. You can then choose to accept the new actual by rerunning the test with TESTDATA_ACCEPT=1 environment variable.

Assert

You can also use diff.AssertJSONEq and diff.AssertStringEq in testing environments to shorthand the above "if fail then Fatal" code.