1、功能测试

calcTriangle.go

// 需要被测试的函数
func calcTriangle(a, b int) int {
return int(math.Sqrt(float64(a*a + b*b)))
}

calcTriangle_test.go   // 注意测试文件必须以_test结尾

package main

import "testing"

// 注意测试函数必须以 Test开头
func TestTriangle(t *testing.T) {
  // 表格驱动测试
tests := []struct {a, b, c int} {
{3,4,5},
{5,12,13},
{8,15,17},
{12,35,37},
{30000,40000,50000},
}
for _, tt := range tests {
if actual := calcTriangle(tt.a, tt.b); actual != tt.c {
t.Errorf("calcTriangle(%d, %d); got %d; expected %d", tt.a, tt.b, actual, tt.c)
}
}
}

测试执行方法

1、IDE中直接执行

2、命令行 go test .

代码覆盖率测试

命令行执行:

1、go test -coverprofile=c.out  生成覆盖率数据

2、go tool cover -html c.out  生成html页面展示

2、性能测试

nonrepeating.go

package main

import "fmt"

func lengthOfNonRepeatingSubStr(s string) int {
lastOccurred := make(map[rune]int)
start := 0
maxLength := 0
for i, ch := range []rune(s) {
if lastI, ok := lastOccurred[ch]; ok && lastI >= start {
start = lastI + 1
}
if i - start + 1 > maxLength {
maxLength = i - start + 1
}
lastOccurred[ch] = i
}
return maxLength
} func main() {
fmt.Println(
lengthOfNonRepeatingSubStr("abcabcbb"))
fmt.Println(
lengthOfNonRepeatingSubStr("bbbbb"))
fmt.Println(
lengthOfNonRepeatingSubStr("pwwkew"))
fmt.Println(
lengthOfNonRepeatingSubStr(""))
fmt.Println(
lengthOfNonRepeatingSubStr("b"))
fmt.Println(
lengthOfNonRepeatingSubStr("abcdef"))
fmt.Println(
lengthOfNonRepeatingSubStr("这里是慕课网"))
fmt.Println(
lengthOfNonRepeatingSubStr("一二三二一"))
fmt.Println(
lengthOfNonRepeatingSubStr(
"黑化肥挥发发灰会花飞灰化肥挥发发黑会飞花"))
}

nonrepeating_test.go

package main

import "testing"

// 功能测试
func TestSubstr(t *testing.T) {
tests := []struct{s string; ans int} {
{"abcabcbb", 3},
{"bbbbb", 1},
{"pwwkew", 3},
{"", 0},
{"b", 1},
{"abcdef", 6},
{"这里是慕课网", 6},
{"一二三二一", 3},
{"黑化肥挥发发灰会花飞灰化肥挥发发黑会飞花", 8},
} for _, tt := range tests {
if actual := lengthOfNonRepeatingSubStr(tt.s); actual != tt.ans {
t.Errorf("got %d for input %s; expected %d", actual, tt.s, tt.ans)
}
}
} // 性能测试
func BenchmarkSubstr(b *testing.B) {
s := "黑化肥挥发发灰会花飞灰化肥挥发发黑会飞花"
ans := 8 // b.N 自动判断测试的次数
for i := 0; i < b.N ; i++ {
actual := lengthOfNonRepeatingSubStr(s)
if actual != ans {
b.Errorf("got %d for input %s; expected %d", actual, s, ans)
}
}
}

测试执行方法

1、IDE中直接执行

2、命令行 go test -bench .

3、go test -bench . -cpuprofile=cpu.out   ,  go tool pprof  生成SVG图形

最新文章

  1. Ubuntu 16.04安装QQ国际版图文详细教程
  2. android-studio-bundle-141.1980579-windows download Site
  3. C++拷贝构造函数
  4. 为什么V8引擎这么快?
  5. mysql -B 恢复与不加
  6. HDU 4417:Super Mario(主席树)
  7. Mapnik 编译安装过程
  8. linux jmail乱码
  9. extSourceStat_7Day_Orders.php
  10. 深入理解JAVA多态原理
  11. Android(java)学习笔记252:ContentProvider使用之内容观察者01
  12. 安卓状态栏通知Status Bar Notification
  13. ZTESoft 持续集成 编年史 之 持续集成建设---自主研发(总括)
  14. java.lang.NoClassDefFoundError: com.umeng.analytics.MobclickAgent
  15. 201521123089 《Java程序设计》第1周学习总结
  16. 怎么让self.view的Y从navigationBar下面开始计算
  17. PHP 设置分页 可以直接引用 最下面有自己引用的方法和注释
  18. HashMap 和 ConcurrentHashMap比较
  19. js输出
  20. Ubuntu系统的安装(虚拟机) 并配置C/C++编译器

热门文章

  1. python3 - 使用__slots__限制实例属性
  2. Happy Necklace(矩阵快速幂)
  3. java图片二进制相互转换
  4. 关于微信小程序下拉出现三个小点
  5. event.preventDefault方法的使用
  6. Java实现单例模式的两种方式
  7. [JavaScript] this、call和apply详解
  8. Neighbor Discovery Protocol Address Resolution Protocol
  9. FW ImageMagick
  10. Linux下Ngnix及PHP重启命令