Golang Go语言中 请问单元测试怎么写
用 goLand 的 ide 编写 go 的单元测试,但是一 run 就发现 ./w_test.go:11:7: undefined: NewWeightedRR ./w_test.go:11:21: undefined: RR_NGINX ./w_test.go:60:7: undefined: NewWeightedRR ./w_test.go:60:21: undefined: RR_LVS
说是我的引用有点问题,请问哪位 v 友遇到过吗
Golang Go语言中 请问单元测试怎么写
上代码呀,github 有个 gotests 工具,挺省事的。
推荐这个 repo: https://github.com/quii/learn-go-with-tests
你是不是没有以 package 方式执行?这样会导致一些 exported variable/method 无法被引用。
在Golang(Go语言)中,单元测试是通过编写与你的代码库分离的测试文件来实现的。这些测试文件通常命名为 _test.go
,并且使用 testing
包来编写测试用例。以下是一个基本的步骤和示例,帮助你理解如何编写单元测试:
-
引入
testing
包: 在你的测试文件中,首先需要引入testing
包。 -
编写测试函数: 测试函数的命名必须以
Test
开头,并接收一个指向*testing.T
类型的指针作为参数。 -
编写测试逻辑: 在测试函数内部,你可以使用
t.Error()
或t.Fail()
来标记测试失败,或者使用t.Log()
来记录测试过程中的信息。
示例:
假设你有一个简单的函数 Add(a, b int) int
,你可以为它编写一个单元测试:
// add.go
package main
func Add(a, b int) int {
return a + b
}
// add_test.go
package main
import (
"testing"
)
func TestAdd(t *testing.T) {
result := Add(2, 3)
expected := 5
if result != expected {
t.Errorf("Add(2, 3) = %d; expected %d", result, expected)
}
}
运行测试时,只需在命令行中执行 go test
,Go 会自动寻找并运行所有以 _test.go
结尾的文件中的测试函数。