golang基础-编写单元测试

简介: golang基础-编写单元测试

Go测试


Go有一个内建的测试指令go test以及testing包,联合给出一个最小但完整的测试体验,标准工具链同时包含性能测试和基于语句的测试。

我这一次打算用GolandIDE来进行单元测试


单元测试的特性


第一个也是唯一的参数必须是t *testing.T

函数名称以Test开头,紧接着以大写字母开头的单词或短语。

通常被测试的方法会长这样 TestValidateClient

调用t.Error或者t.Fail来表示错误(例子中调用t.Errorf来提供更多细节)

t.Log可以用来提供无失败的调试信息

测试代码必须保持在一个命名为something_test.go的文件中,例如:addition_test.go


虽然我写到这了,事实上应该放在同目录下面,比如测试alarm_utils.go就应该写成alarm_utils_test.go


开始测试


测试文件代码类似下面

package main
import "testing"
func TestSum(t *testing.T) {
    tables := []struct {
        x int
        y int
        n int
    }{
        {1, 1, 2},
        {1, 2, 3},
        {2, 2, 4},
        {5, 2, 7},
    }
    for _, table := range tables {
        total := Sum(table.x, table.y)
        if total != table.n {
            t.Errorf("Sum of (%d+%d) was incorrect, got: %d, want: %d.", table.x, table.y, total, table.n)
        }
    }
}

添加一个Configurations,如下

aHR0cHM6Ly9jb2RpbmczbWluLm9zcy1hY2NlbGVyYXRlLmFsaXl1bmNzLmNvbS9jb2RpbmczbWluLzIwMjAtMDMtMDMtMDUzMjUwLmpwZw.png

当然了,你也可以选文件夹,我这里选的是一个文件,选文件夹他会自动查找符合规则的测试文件。


然后Run就是了,还可以Debug


引用


golang基础-编写单元测试

相关文章
|
6月前
|
安全 测试技术 Go
第十五章 Golang单元测试
第十五章 Golang单元测试
41 2
|
6月前
|
测试技术 Go
golang-Mock对单元测试的作用
golang-Mock对单元测试的作用
67 0
|
3月前
|
测试技术 Go
写出高质量代码的秘诀:Golang中的测试驱动开发(TDD)
写出高质量代码的秘诀:Golang中的测试驱动开发(TDD)
|
3月前
|
测试技术 Go 开发者
掌握Golang测试:从入门到实践
【8月更文挑战第31天】
59 0
|
4月前
|
运维 监控 测试技术
Golang质量生态建设问题之接入并使用Go单元测试插件的问题如何解决
Golang质量生态建设问题之接入并使用Go单元测试插件的问题如何解决
|
4月前
|
测试技术 Shell Go
Golang质量生态建设问题之单元测试在卓越工程中的问题如何解决
Golang质量生态建设问题之单元测试在卓越工程中的问题如何解决
|
4月前
|
测试技术 Shell Go
Golang质量生态建设问题之Go语言的单元测试的问题如何解决
Golang质量生态建设问题之Go语言的单元测试的问题如何解决
|
6月前
|
安全 测试技术 Go
Golang深入浅出之-Go语言单元测试与基准测试:testing包详解
【4月更文挑战第27天】Go语言的`testing`包是单元测试和基准测试的核心,简化了测试流程并鼓励编写高质量测试代码。本文介绍了测试文件命名规范、常用断言方法,以及如何进行基准测试。同时,讨论了测试中常见的问题,如状态干扰、并发同步、依赖外部服务和测试覆盖率低,并提出了相应的避免策略,包括使用`t.Cleanup`、`t.Parallel()`、模拟对象和检查覆盖率。良好的测试实践能提升代码质量和项目稳定性。
106 1
|
11月前
|
测试技术 Go
golang 测试模块使用
golang 测试模块使用
52 1
|
2月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
113 4
Golang语言之管道channel快速入门篇