Skip to content

Instantly share code, notes, and snippets.

@sdboyer
Created February 23, 2017 15:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sdboyer/eb47572f4913200af6afe8aea8f8253c to your computer and use it in GitHub Desktop.
Save sdboyer/eb47572f4913200af6afe8aea8f8253c to your computer and use it in GitHub Desktop.
clunky, string typing, and subtle dependencies
func TestFoo(t *testing.T) {
higherLevelCheck(t, someArgs{something})
higherLevelCheck(t, someArgs{somethingElse})
}
func higherLevelCheck(t *testing.T, someArgs Args) {
r, err := doSomething(someArgs)
t.HelperAt("first err nil check")
assert(t, err, nil)
t.HelperAt("first value match check")
assert(t, r.Something, expectedValue)
z, err = somethingElse(someArgs)
t.HelperAt("second err nil check")
assert(t, err, nil)
if foo(z) {
t.Fatalf("higher level check failed")
}
}
func assert(t *testing.T, got, want interface{}) {
t.Helper()
if !reflect.DeepEqual(want, got) {
t.Fatalf("got = %v, want = %v", got, want)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment