Writing Go tests
A Go test file is simply a set of functions with the following signature:
func Test<Name>(*testing.T)
Here, <Name> is an arbitrary name that reflects the purpose of the test. The test functions are intended to exercise a specific functional unit (or unit test) of the source code.
Before we write the test functions, let us review the code that will be tested. The following source snippet shows a simple implementation of a mathematical vector with Add
, Sub
, and Scale
methods (see the full source code listed at https://github.com/vladimirvivien/learning-go/ch12/vector/vec.go). Notice that each method implements a specific behavior as a unit of functionality, which will make it easy to test:
type Vector interface { Add(other Vector) Vector Sub(other Vector) Vector Scale(factor float64) ... } func New(elems ...float64) SimpleVector { return SimpleVector(elems) } type SimpleVector []float64 func (v SimpleVector) Add(other Vector) Vector...