美文网首页
go的代码测试

go的代码测试

作者: 学不会swoole不改名 | 来源:发表于2019-04-25 16:26 被阅读0次
      package main
    
    import (
        "testing"
    )
    
    func Test(t *testing.T) {
        test := []struct {
            s      string
            answer int
        }{
            {"abc", 3},
            {"abcabcadcd", 4},
            {"吃葡萄不吐葡萄皮", 0},
        }
        for _, tt := range test {
            receive := lengthSubstr(tt.s)
            if receive != tt.answer {
                t.Errorf("got %d for input %s;"+"expected %d",
                    receive, tt.s, tt.answer)
            }
    
        }
    }
    

    代码覆盖率测试##

    go test -cover
    

    代码压力测试##

    go test -bench.
    
    func Tests(b *testing.B) {
        s := "吃葡萄不吐葡萄皮"
        answer := 5
        for i := 0; i < b.N; i++ {
            receive := lengthSubstr(s)
            if receive != answer {
                b.Errorf("got %d for input %s;"+"expected %d",
                    receive, s, answer)
            }
    
        }
    
    }
    

    谈谈怎么优化性能

    通过下面的命令生成一个cpu.out的文件(二进制)

    go test -bench. -cpuprofile cpu.out
    

    next

    go tool pprof cpu.out
    

    运行后会有一个命令行 可以通过help来查看具体有哪些命令

    输入web会生成详细的图,但是这里说我没有Graphviz 安装一个就好

    aaaa.png

    记得将生成的bin放到Path里面

    相关文章

      网友评论

          本文标题:go的代码测试

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