在
golang
中测试函数:创建以 _test.go 结尾的测试文件。声明一个以 testxxx 命名的测试函数,其中 xxx 是被测函数的名称。使用断言来验证预期结果与实际结果是否一致。设置断点并使用调试器来调试测试失败的情况。使用表驱动测试和覆盖率工具来增强测试效率。
Golang 函数的测试和调试
在 Golang 中,测试是确保代码可靠性和准确性的重要实践。本教程将指导你如何使用 Golang 内置的测试框架对函数进行测试和调试。
测试函数
立即学习
“
go语言免费学习笔记(深入)
”;
为了测试一个函数,你需要创建以
结尾的新文件。该文件位于与被测函数相同的包中。在测试文件中,使用
包的
函数声明一个测试函数,其中
是被测函数的名称。例如:
断言
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
在测试函数中,使用断言来验证预期结果与实际结果是否一致。
包提供了多种断言函数,例如:
:验证
和
是否相等
:验证
和
是否是相同的错误
:验证
为
实战案例
假设你有一个名为
的函数,该函数接受两个数字参数并返回它们的和。你可以编写以下测试函数来测试
函数:
调试
对于调试测试失败的情况,可以通过在源代码中设置断点来使用调试器。在 VSCode 等 IDE 中,你可以右键单击代码中的行并选择“设置/删除断点”以设置断点。当代码在调试器中运行时,它将在断点处暂停,允许你检查变量和堆栈跟踪。
提示
使用表驱动测试来简化对多组输入的测试。
使用覆盖率工具来确保测试代码涵盖了足够多的函数逻辑。
将测试代码与持续集成系统集成,以在代码更改时自动运行测试。
_test.gotestingTestXXXXXX// my_function_test.go
package mypackage
import (
"testing"
)
func TestAdd(t *testing.T) {
// ...
}testingt.Equal(a, b)abt.ErrorIs(err, expectedError)errexpectedErrort.True(cond)condtrueaddadd// my_function_test.go
import (
"testing"
)
func TestAdd(t *testing.T) {
tests := []struct {
a, b int
want int
}{
{1, 2, 3},
{3, 4, 7},
{-1, -2, -3},
}
for _, tt := range tests {
got := add(tt.a, tt.b)
if got != tt.want {
t.Errorf("add(%d, %d) = %d, want %d", tt.a, tt.b, got, tt.want)
}
}
}