zoukankan      html  css  js  c++  java
  • golang之单元测试

    基本介绍:

      Go语言中自带的一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,testing框架和其他语言中的测试框架类似,可以基于这个框架写针对相应函数的测试用例,也可以基于该框架写相应的压力测试用例。通过单元测试,可以解决以下问题:

      1)确保每个函数都是可运行,并且运行结果是正确的;

      2)确保写出来的代码性能是好的;

      3)单元测试能及时的发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设计上的一些问题,让程序能够在高并发的情况下还能保持稳定

    快速入门:

      cal.go

    // 一个被测试函数
    func addUpper(n int) int {
        res := 0
        for i := 1; i <= n; i++ {
            res += 1
        }
        return res
    }

      cal_test.go

    func TestAddUpper(t *testing.T) {
        res := addUpper(10)
        if res != 55 {
            t.Fatalf("AddUpper(10) 执行错误,期望值=%v 实际值=%v
    ", 55, res)
        }
    
        t.Logf("AddUpper(10) 执行正确...")
    }

    总结:

      1)测试用例文件名必须以 _test.go结尾,比如cal_test.go, cal不是固定的;

      2)测试用例函数必须以Test开头,一般来说就是Test+被测试的函数名,比如TestAddUpper;

      3)TestAddUpper(t *testing.T) 的形式参数 类型必须是 *testing.T;

      4)一个测试用例文件中,可以有多个测试用例函数,比如TestAddUpper, TestSub;

      5)运行测试用例指令:

        (1)cmd > go test

        (2)cmd > go test -v

      6)当出现错误时,可以使用t.Fatalf来格式化输出错误信息,并退出程序;

      7)t.Logf 方法可以输出相应的日志;

      8)测试用例函数,并没有放在main函数中,也执行了,这就是测试用例的方便之处;

      9)PASS表示测试用例运行成功,FAIL表示测试用例运行失败;

      10)测试单个文件,一定要带上被测试的原文件 : go test -v cal_test.go;

      11)测试单个方法 : go test -v -test.run TestAddUpper。

    人生就是要不断折腾
  • 相关阅读:
    Oracle中有大量的sniped会话
    Error 1130: Host '127.0.0.1' is not allowed to connect to this MySQL server
    汉字转换为拼音以及缩写(javascript)
    高效率随机删除数据(不重复)
    vs2010 舒服背景 优雅字体 配置
    mvc中的ViewData用到webfrom中去
    jquery ajax return值 没有返回 的解决方法
    zShowBox (图片放大展示jquery版 兼容性好)
    动感效果的TAB选项卡 jquery 插件
    loading 加载提示······
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/12253602.html
Copyright © 2011-2022 走看看