Golang Go语言中 请问单元测试怎么写

发布于 1周前 作者 htzhanglong 来自 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语言中 请问单元测试怎么写
5 回复

go test

更多关于Golang Go语言中 请问单元测试怎么写的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


上代码呀,github 有个 gotests 工具,挺省事的。

你是不是没有以 package 方式执行?这样会导致一些 exported variable/method 无法被引用。

在Golang(Go语言)中,单元测试是通过编写与你的代码库分离的测试文件来实现的。这些测试文件通常命名为 _test.go,并且使用 testing 包来编写测试用例。以下是一个基本的步骤和示例,帮助你理解如何编写单元测试:

  1. 引入 testing: 在你的测试文件中,首先需要引入 testing 包。

  2. 编写测试函数: 测试函数的命名必须以 Test 开头,并接收一个指向 *testing.T 类型的指针作为参数。

  3. 编写测试逻辑: 在测试函数内部,你可以使用 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 结尾的文件中的测试函数。

回到顶部