Testing Basics
Table Tests
Table tests run the same check across a short list of input and expected values.
Table Tests
table_tests.go
package main
import "fmt"
func double(value int) int {
return value * 2
}
func main() {
var caseCount =
cases := []struct {
input int
expected int
}{
{1, 2},
{2, 4},
{3, 6},
{4, 8},
}
passed := 0
selected := cases[:caseCount]
for _, testCase := range selected {
actual := double(testCase.input)
if actual == testCase.expected {
passed++
}
}
allPassed := passed == len(selected)
fmt.Println("cases=", len(selected))
fmt.Println("passed=", passed)
fmt.Println("allPassed=", allPassed)
}
package main
import "fmt"
func double(value int) int {
return value * 2
}
func main() {
var caseCount =
cases := []struct {
input int
expected int
}{
{1, 2},
{2, 4},
{3, 6},
{4, 8},
}
passed := 0
selected := cases[:caseCount]
for _, testCase := range selected {
actual := double(testCase.input)
if actual == testCase.expected {
passed++
}
}
allPassed := passed == len(selected)
fmt.Println("cases=", len(selected))
fmt.Println("passed=", passed)
fmt.Println("allPassed=", allPassed)
}
package main
import "fmt"
func double(value int) int {
return value * 2
}
func main() {
var caseCount =
cases := []struct {
input int
expected int
}{
{1, 2},
{2, 4},
{3, 6},
{4, 8},
}
passed := 0
selected := cases[:caseCount]
for _, testCase := range selected {
actual := double(testCase.input)
if actual == testCase.expected {
passed++
}
}
allPassed := passed == len(selected)
fmt.Println("cases=", len(selected))
fmt.Println("passed=", passed)
fmt.Println("allPassed=", allPassed)
}
table test
A table test stores cases as data, then loops through each case with one shared check.