美文网首页
Go的单元测试

Go的单元测试

作者: 疾风2018 | 来源:发表于2018-08-16 14:10 被阅读0次

    函数测试

    以下形式的函数签名将被go test命令当做单元测试方法

    func TestXxx(*testing.T)

    按照Go语言的习惯,把一个go文件的测试代码放在相同的的package下,起名称为 xxx_test.go,```go test```命令会自动识别,在正式编译的时候会忽略掉这样的文件。

    运行```go help test```会了解更多。

    函数性能测评(benchmark)

    用以下形式命名的函数被当成benchmark(性能评测)

    func BenchmarkXxx(*testing.B)

    类似于这样的代码就可以评测每次循环花费的时间

    func BenchmarkHello(b *testing.B) {

        for i := 0; i < b.N; i++ {

            fmt.Sprintf("hello")

        }

    }

    一个特殊的测试函数是TestMain,如果它存在则所有的测试函数的执行都是通过调用它来实现,函数签名形式如下:

    func TestMain(m *testing.M)

    TestMain典型的代码是:

    func TestMain(m *testing.M) {

         // setup

         // call flag.Parse() here if TestMain uses flags

         os.Exit(m.Run())

         // teardown

    }


    testing.T 与 testing.B 的常用函数说明

    testing.T/B.Fail  ->  mark the function as having failed

    testing.T/B.FailNow  ->  mark the function as having failed and stop execution

    testing.T/B.Error  ->  Log + Fail

    testing.T/B.Fatal  ->  Log + FailNow

    相关文章

      网友评论

          本文标题:Go的单元测试

          本文链接:https://www.haomeiwen.com/subject/nicgbftx.html