加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

(四十)golang--单元测试

发布时间:2020-12-16 09:17:28 所属栏目:大数据 来源:网络整理
导读:传统的测试: package mainimport ( " fmt " )func addUpper(n int ) int { res : = 0 for i := 0 ; i = n; i++ { res += i } return res}func main() { res : = addUpper( 10 ) if res != 55 { fmt.Printf( 错误,真实值:%v,期望值:%v " ,res, ) } else

传统的测试:

package main

import (
    "fmt"
)

func addUpper(n int) int {
    res := 0
    for i := 0; i <= n; i++ {
        res += i
    }
    return res
}

func main() {
    res := addUpper(10)
    if res != 55 {
        fmt.Printf(错误,真实值:%v,期望值:%v",res,)
    } else正确,真实值:%v,期望值:%v)
    }

}

存在问题:(1)需要修改main函数,如果程序正在运行,则需要停止程序;(2)需要测试多个函数时,步骤较为繁琐;

单元测试:(1)确保每个函数都是可运行的,并且运行结果都是正确的;(2)确保写出来的代码性能是好的;

利用go中的testing包:测试以TestXxx开头的函数,注意第一个X是大写的。

测试的整体流程图:

具体目录:

main.go

package main

func main() {

}

pro.go

package utils

func addUpper(n  res
}

func sub(n1 int,n2  {
    return n1 - n2
}

add_test.go

package utils

import (
    "
    testing
)

func TestAddUpper(t *testing.T) {
    res := addUpper( {
        //程序错输,则退出,并输出日志
        t.Fatalf(AddUpper(10)执行错误,期望值=%v,输出值=%v,res)
    }
    如果正确,输出日志
    t.Logf(AddUpper(10)执行正确。。。)
}

func TestHello(t *testing.T) {
    fmt.Println(hello world)
}

sub_test.go

package utils

import 

func TestSub(t *testing.T) {
    res := sub(20,1)">sub(20,10)执行错误,期望值=%v,输出值=%v)
}

最后结果:

单元测试注意事项:

(1)测试用例函数必须以TestXxx命令,其中第一个X大写;

(2)测试用例文件必须以_test.go结尾;

(3)TestXxx(t *testing.T)形参类型必须是*testing.T;

(4)一个测试用例文件中可以有多个测试用例;

(5)运行测试用例指令:

  go test (运行正确无日志,错误输出日志)

  go test -v (不管是否正确,都输出日志)

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

(7)t.logf()可以输出相应的日志;

(8)PASS表示测试用例通过,FAIL表示失败;

(9)测试单个文件:go test -v add_test.go pro.go

(10)测试单个方法:go test -v ?-test.run TestAddUpper

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读