Golang Unit Test

单测覆盖率

- 单测文件在c.out

go test -coverprofile=c.out -coverpkg=./... -gcflags=all=-l <directory>

 

单测覆盖率代码分析

go tool cover -html=c.out

 

1. Mockito

Mockito是在MIT許可下發布的用於Java的開源測試框架

Mockito.PatchConvey("test", t, func() {
    mockito.Mock().Return().Build() 
})

  

 

2. Monkey

Patch 

替换两个方法的实现。

func main()  {
    monkey.Patch(foo1, foo2)
    fmt.Println(foo1("apple"))  //输出:i am apple, calling function foo2
}

func foo1(s string) string {
    return fmt.Sprintf("i am %s, calling function foo1", s)
}

func foo2(s string) string {
    return fmt.Sprintf("i am %s, calling function foo2", s)
}

go run -gcflags=-l main.go // 运行时需要加入:-gcflags=-l

 

posted @ 2020-12-08 17:51  森淼clover  阅读(210)  评论(0编辑  收藏  举报