golang基础-编写单元测试
  TEZNKK3IfmPf 2023年11月15日 20 0

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

golang基础-编写单元测试

虽然我写到这了,事实上应该放在同目录下面,比如测试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,如下

golang基础-编写单元测试

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

然后Run就是了,还可以Debug


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 区间K大数 下一篇: GO并发之好用的sync包
  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月15日   19   0   0 go定时器
  TEZNKK3IfmPf   2023年11月14日   28   0   0 字符串go
  TEZNKK3IfmPf   2023年11月14日   23   0   0 go函数
  TEZNKK3IfmPf   2023年11月15日   16   0   0 go