在 Golang 中进行函数的表格测试非常简单,可以使用 testing 包中的 Table Driven Tests 功能来实现。下面是一个示例:
package main
import (
"testing"
)
func add(a, b int) int {
return a + b
}
func TestAdd(t *testing.T) {
tests := []struct {
name string
input1 int
input2 int
expected int
}{
{"test1", 1, 2, 3},
{"test2", -1, -2, -3},
{"test3", 0, 0, 0},
{"test4", 99999, 1, 100000},
}
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
result := add(tc.input1, tc.input2)
if result != tc.expected {
t.Errorf("add(%d, %d) = %d; want %d", tc.input1, tc.input2, result, tc.expected)
}
})
}
}
在这个示例中,我们定义了一个名为 add 的函数,它接收两个整数参数并返回它们的和。我们还定义了一个名为 TestAdd 的测试函数,它包含了一个测试用例列表。每个测试用例都包含了一组输入和期望输出。
在 for 循环中,我们遍历测试用例列表,并使用 t.Run 函数来运行子测试。在每次子测试中,我们调用 add 函数并检查其结果是否等于期望输出。如果结果不符合预期,我们将输出一条错误消息。
运行测试时,您将看到类似以下的输出:
=== RUN TestAdd
=== RUN TestAdd/test1
=== RUN TestAdd/test2
=== RUN TestAdd/test3
=== RUN TestAdd/test4
--- PASS: TestAdd (0.00s)
--- PASS: TestAdd/test1 (0.00s)
--- PASS: TestAdd/test2 (0.00s)
--- PASS: TestAdd/test3 (0.00s)
--- PASS: TestAdd/test4 (0.00s)
PASS
在这个示例中,所有测试都通过了,证明 add 函数正常工作。