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