一架梯子,一头程序猿,仰望星空!
Golang中级特性面试题 > 内容正文

Go怎么做单元测试?


问题简答

Go语言提供了一个内置的单元测试库(testing),可以完成单元测试任务,单元测试的主要过程:为目标函数编写单元测试函数,单元测试函数名必须以Test开头命名,单元测试代码文件名必须以 _test.go 结尾,最后使用go test命令执行单元测试代码。

问题详解:

Golang单元测试简单例子

需要测试的函数, 代码文件名: add.go

package main

// 加法函数,计算 x + y
func add(x int, y int) int {
    return x + y
}

单元测试代码, 代码文件名: add_test.go

package main

import "testing"

// 函数名必须以Test开头,参数必须是testing.T指针
func TestAdd(t *testing.T) {
    x := 2
    y := 3
    expected := 5

    // 测试add函数
    result := add(x, y)

    // 检测add函数结果
    if result != expected {
        // 检测失败,通过t返回错误信息
        t.Errorf("Expected %d but got %d", expected, result)
    }

    // 没有错误代表测试通过
}

执行单元测试

go test add_test.go add.go -v