golang之测试和性能 - Go语言中文社区

golang之测试和性能


1:单元测试
要求:1:文件必须以*_test.go命名,这样在执行go test的时候才会执行到相应的代码
2:你必须import testing这个包
3:函数命名必须以Test*命名
4:命令:go test -v
示例:

package test

import (
    "fmt"
    "testing"
)

type user struct {
    name string
    age  uint32
}

func (u *user) SetInfo(name string, age uint32) {
    u.name = name
    u.age = age
}

func (u *user) GetAge() uint32 {
    return u.age
}

func TestInfo(t *testing.T) {
    u := user{"Bob", 10}
    u.SetInfo("Alice", 23)
    age := u.GetAge()
    fmt.Println(age)
}

执行go test -v 结果显示如下
测试结果

2:基维测试
要求:1:文件必须以*_test.go命名,这样在执行go test的时候才会执行到相应的代码
2:你必须import testing这个包
3:函数命名必须以 Benchmark*命名
4:命令:go test -v -bench .(.代表执行所有的测试函数,不能少)
5:函数只接受一个唯一一个b *testing.B参数
示例:

package main

import (
//      "fmt"
        "testing"
)

const capacity = 1024

func array() [capacity]string {
        var d [capacity]string

        for i := 0; i < len(d); i++ {
                d[i] = "hello"
        }

        return d
}

func slice() []int {
        d := make([]string, capacity)

        for i := 0; i < len(d); i++ {
                d[i] = "world"
        }

        return d
}
func BenchmarkArray(b *testing.B) {
        for i := 0; i < b.N; i++ {
                _ = array()
        }
}

func BenchmarkSlice(b *testing.B) {
        for i := 0; i < b.N; i++ {
                _ = slice()
        }
}

执行go test -v -bench .(第一列代表执行次数,第二列代表速度)
go test -v -bench .

执行go test -v -bench . -benchmem(后两列结果代表执行内存分配的次数)
go test -v -bench . -benchmem

执行go test -v -bench . -benchmem -benchtime=”3s”(设置执行测试连续时间为3s)
go test -v -bench . -benchmem -benchtime="3s"

github链接

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_37696997/article/details/78324138
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-02 19:49:09
  • 阅读 ( 1172 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢