Golang:Testing
Jump to navigation
Jump to search
- Golang Testing
This method works best when the `testCase` is a large struct, and only tiny changes are made to that struct for each case.
```go func Func(value int) {
return value > 0
}
func TestFunc(t *testing.T) {
type testCase struct { desc string ok bool value int }
okFunc := func(changeFn func(*testCase)) testCase { tc := &testCase { ok: true, } if changeFn != nil { changeFn(tc) } return *tc }
for _, tc := range []testCase { // ok values. okFunc(nil), okFunc(func(tc *testCase) { tc.desc = "one" tc.value = 1 }, // not-ok values. testCase{"not-ok"}, }{ if got, want := Func(tc.value), tc.ok; got != want { t.Errorf("%s: Func(%d) = %t", tc.desc, tc.value, got) } }
} ```