• go单元测试


    要测试的方法
    unit.go

    package main
    
    func addUpper(n int) int {
    	res := 0
    	for i := 1; i <= n-1; i++ {
    		res += i
    	}
    	return res
    }
    
    func main() {
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    单元测试文件 必须_test结尾
    unit_test.go

    //go单元测试
    package main
    
    import "testing"
    
    // 编写测试用例 testing 框架会执行_test结尾的文件 并找到Test开头的函数执行
    // 执行命令:go test -v 执行全部目录测试
    // go test unit_test.go .\unit.go 执行指定文件测试
    // go test -v -run TestAddUpper unit_test.go unit.go 执行指定方法
    func TestAddUpper(t *testing.T) {
    	// 调用要测试的函数
    	res := addUpper(10)
    	if res != 55 {
    		t.Fatalf("addUpper(10) 执行错误,期望值=%v 实际值=%v \n", 55, res)
    	}
    	// 如果正确 输出日志
    	t.Logf("addUpper(10) 执行正确。。。")
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    基准测试——获得代码内存占用和运行效率的性能数据

    package main
    
    import "testing"
    
    // 基准测试——获得代码内存占用和运行效率的性能数据
    // 函数名 Benchmark开头
    //go test -v -bench=Add  benchmark_test.go
    //  ns/op”表示每一个操作耗费多少时间(纳秒
    // go test -v -bench=Add -benchmem benchmark_test.go
    //-bench后添加了 Add,指定只测试 Benchmark_Add() 函数
    //-benchmem参数以显示内存分配情况
    // 执行正则匹配查询go test -v -bench ^Benchmark_Add$  benchmark_test.go
    func Benchmark_Add(b *testing.B) {
    	var n int
    	for i := 0; i < b.N; i++ {
    		n++
    	}
    }
    
    func Benchmark_Add2(b *testing.B) {
    	var n int
    	for i := 0; i < b.N; i++ {
    		n++
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
  • 相关阅读:
    netty(二)基础 多线程情况下的selector
    react151618刷新几次的问题
    主从复制和读写分离
    PHP 脚本,其中包含一个函数,该函数会从给定的字符串列表中随机选择一个字符串并返回
    一文快速回顾 Session 和 Cookie
    CSS
    Java基础二十五(Map)
    微前端 - micro-app 数据通信
    图解系列--防火墙
    道路空间功率谱密度与时间功率谱密度(笔记)
  • 原文地址:https://blog.csdn.net/ltgsoldier1/article/details/126172061