// go test v1_test.go v1.go package main import ( "errors" "testing" ) func Equal(a, b error) bool { if a == nil { return b == nil } return b != nil && a.Error() == b.Error() } func TestLineCount(t *testing.T) { for i, tc := range []struct { path string lc int err error }{ {"10", 10, nil}, {"11", 0, errors.New("open 11: no such file or directory")}, } { lc, err := lineCount(tc.path) if lc != tc.lc || !Equal(tc.err, err) { t.Errorf("%d. lineCount(%q) = %d, %s; want = %d, %s", i, tc.path, lc, err, tc.lc, tc.err) } } }