Go testing
Binnen een dir met go files mag je maar èèn package hebben. Daarop is èèn uitzondering en dat heeft te maken met het testen van je code. Want, om het mogelijk te maken om alleen de buitenkant a.k.a. de interface van je code te testen, mag je in een dir met go-files en packagename oehip ook package oehip_test maken. In het package oehip_test kan je dan de buiten kant van de oehip code testen net als of jij je eigen library gebruikt.
Example code
En het wordt mooier. In het test package kan je naast tesfuncties ook voorbeeld code schrijven die laat zien hoe je een bepaalde funktie gebruikt. Die voorbeeld functies moeten beginnen met Example gevolgd door de naam van de functie waar je een voorbeeld voor schrijft. Van die voorbeeld functie kan je dan weer heel simple een test kan maken door een comment toe te voegen onder aan de example functie. En als bonus wordt deze example code onderdeel van de documentatie via godoc.
Dan heb je dus een voorbeeld èn een test en documentatie in èèn keer gemaakt!
Hoe cool is dat?
Voorbeeld
De package met twee funkties
package oehip
func Sum(n1,n2 int) int {
return n1 + n2
}
func product(n1,n2 int) int {
retun n1*n2
}
De Test package
package oehip_test
import oehip
func ExampleSum(){
s := Sum(3,6)
fmt.Printf("sum van 3 en 6 is $d",s)
// Output: "sum van 3 en 6 is 9"
}
NOTE: De func product(2,5) kunnen we niet testen in package oehip_test. func product begint met een kleine letter en is dus niet geexporteerd