IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> golang之单元测试与压力测试 -> 正文阅读

[开发测试]golang之单元测试与压力测试

单元测试

golang系统包就继承了单元测试
这里演示表格驱动的方式,进行单元测试
示例:
待测试函数

package test

func Add(a, b int) int {
	return a + b
}

单元测试相关代码是可以自动生成的,选中测试代码,点击图示
在这里插入图片描述
在这里插入图片描述
同目录生成 add_test.go文件,内有表格驱动测试模板,看代码即可:
需要说明的几点:
TestMain是可选函数,如果写上就是测试的入口,m.Run()进行测试的运行,并返回状态码,0代表成功,其他都为失败

package test

import (
	"fmt"
	"os"
	"testing"
)

func TestAdd(t *testing.T) {
	type args struct {
		a int
		b int
	}
	tests := []struct {
		name string
		args args
		want int
	}{
		{"t1",args{1,2},3},
		{"t2",args{3,5},8},
		{"t3",args{3,5},9},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := Add(tt.args.a, tt.args.b); got != tt.want {
				t.Errorf("Add() = %v, want %v", got, tt.want)
			}
		})
	}
}

func TestMain(m *testing.M) {
	fmt.Println("begin")
	// os.Exit()参数为状态码,如果 !=0,则立刻终止程序
	os.Exit(m.Run())
	fmt.Println("end")
}

使用go test -v运行

begin
=== RUN   TestAdd
=== RUN   TestAdd/t1
=== RUN   TestAdd/t2
=== RUN   TestAdd/t3
    add_test.go:26: Add() = 8, want 9
--- FAIL: TestAdd (0.00s)
    --- PASS: TestAdd/t1 (0.00s)
    --- PASS: TestAdd/t2 (0.00s)
    --- FAIL: TestAdd/t3 (0.00s)
FAIL
exit status 1
FAIL    coolcar/test    0.699s

压力测试

func BenchmarkAdd(b *testing.B) {
	for i:=0;i< b.N;i++ {
		Add(Add(Add(Add(i,i+1),i),i),i)
	}
}

运行:

$ go test -bench=.
goos: windows
goarch: amd64
pkg: coolcar/test
BenchmarkAdd-8          1000000000               0.746 ns/op
PASS
ok      coolcar/test    1.090s
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:34:29  更:2021-10-09 16:35:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:33:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码