witness
is a test helper to make an evident report on a fail of your test.
Simple case.
package main
import (
"testing"
w "github.com/bayashi/witness"
)
func TestExample(t *testing.T) {
g := "a\nb\nc"
e := "a\nd\nc"
if g != e {
w.Fail(t, "Not same", g, e)
}
}
below result will be shown:
Test name: TestExample
Trace: /home/usr/go/src/github.com/bayashi/witness/witness_test.go:14
Fail reason: Not same
Type: Expect:string, Got:string
Expected: "a\nd\nc"
Actually got: "a\nb\nc"
There is a builder interface to specify waht you report.
w.Got(g).Expect(e).Fail(t, "Not same")
There are switches to show more additional info:
w.Got(g).Expect(e).ShowAll().Fail(t, "Not same")
And then,
Test name: TestExample
Trace: /home/usr/go/src/github.com/bayashi/witness/witness_test.go:14
Fail reason: Not same
Type: Expect:string, Got:string
Expected: "a\nd\nc"
Actually got: "a\nb\nc"
Diff details: --- Expected
+++ Actually got
@@ -1,3 +1,3 @@
a
-d
+b
c
Raw Expect: ---
a
d
c
---
Raw Got: ---
a
b
c
---
See witness-showcase for actual outputs on fail.
Also see Witness Package reference for more details.
go get github.com/bayashi/witness
MIT License
Dai Okabayashi: https://github.com/bayashi