Skip to content
Fork of stretchr/testify/require that provides much nicer diffs
Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
_example
LICENCE.txt
README.md
assertions.go
diff.go
doc.go
errors.go
forward_assertions.go
http_assertions.go

README.md

Go assertion library (fork of stretchr/testify/require)

This is a fork of stretchr's assertion library that does two things:

  1. It makes spotting differences in equality much easier. It uses repr and diffmatchpatch to display structural differences in colour.
  2. Aborts tests on first assertion failure (the same behaviour as stretchr/testify/require).

Example

Given the following test:

type Person struct {
  Name string
  Age  int
}

// Use github.com/alecthomas/assert
func TestDiff(t *testing.T) {
  expected := []*Person{{"Alec", 20}, {"Bob", 21}, {"Sally", 22}}
  actual := []*Person{{"Alex", 20}, {"Bob", 22}, {"Sally", 22}}
  assert.Equal(t, expected, actual)
}

// Use github.com/stretchr/testify/require
func TestTestifyDiff(t *testing.T) {
  expected := []*Person{{"Alec", 20}, {"Bob", 21}, {"Sally", 22}}
  actual := []*Person{{"Alex", 20}, {"Bob", 22}, {"Sally", 22}}
  require.Equal(t, expected, actual)
}

The following output illustrates the problems this solves. Firstly, it shows nested structures correctly, and secondly it highlights the differences between actual and expected text.

You can’t perform that action at this time.