golang 测试模块使用

简介: golang 测试模块使用

go 测试模块学习

go 测试的模块 testing

简单的功能测试,侧重于功能正确

被测试代码 位于项目 go/src/项目包/test
package goCode
func Add(a, b int) int {
  return a + b
}
测试代码 位于项目 go/src/项目包/test
package goCode_test
import (
  "testing"
  goCode "tsLearn/goCode"
)
func TestAdd(t *testing.T) {
  var a, b, c = 1, 2, 3
  real := goCode.Add(a, b)
  if real != c {
    t.Errorf("error Add")
  }
}
使用普通功能测试
cd 项目目录 
go test  即可
输出
PASS
ok      tsLearn/test    0.002s

侧重于性能测试,测试代码运行速度

被测试 性能 代码,侧重于性能测试
// 不提前分配 ,动态分配函数性能
func MakeSliceWithoutAlloc() []int {
  var newSlice []int
  for i := 0; i < 100000; i++ {
    newSlice = append(newSlice, i)
  }
  return newSlice
}

// 提前分配确定数量的 函数

func MakeSliceWithPreAlloc() []int {
  var newSlice []int
  newSlice = make([]int, 0, 100000)
  for i := 0; i < 100000; i++ {
    newSlice = append(newSlice, i)
  }
  return newSlice
}
测试性能 代码
func BenchmarkMakeSliceWithoutAlloc(b *testing.B) {
  for i := 0; i < b.N; i++ {
    goCode.MakeSliceWithoutAlloc()
  }
}
func BenchmarkMakeSliceWithPreAlloc(b *testing.B) {
  for i := 0; i < b.N; i++ {
    goCode.MakeSliceWithPreAlloc()
  }
}
使用测试方式
go test -bench=.
goos: linux
goarch: amd64
pkg: tsLearn/test
BenchmarkMakeSliceWithoutAlloc-8            1400            734023 ns/op
BenchmarkMakeSliceWithPreAlloc-8            7796            133683 ns/op
PASS
ok      tsLearn/test    2.182s
相关文章
|
1月前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
|
1月前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
|
24天前
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
35 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
23天前
|
计算机视觉
目标检测笔记(二):测试YOLOv5各模块的推理速度
这篇文章是关于如何测试YOLOv5中不同模块(如SPP和SPPF)的推理速度,并通过代码示例展示了如何进行性能分析。
65 3
|
18天前
|
测试技术 PHP 开发工具
php性能监测模块XHProf安装与测试
【10月更文挑战第13天】php性能监测模块XHProf安装与测试
19 0
|
2月前
|
Prometheus Cloud Native Go
Golang语言之Prometheus的日志模块使用案例
这篇文章是关于如何在Golang语言项目中使用Prometheus的日志模块的案例,包括源代码编写、编译和测试步骤。
46 3
Golang语言之Prometheus的日志模块使用案例
|
1月前
|
安全 Linux 网络安全
Kali渗透测试:使用browser_autopwn2模块进行渗透攻击
Kali渗透测试:使用browser_autopwn2模块进行渗透攻击
|
1月前
|
安全 网络安全 Windows
Kali渗透测试:Metasploit 6.0 中的Evasion模块 原创
Kali渗透测试:Metasploit 6.0 中的Evasion模块 原创
|
3月前
|
NoSQL Linux Android开发
内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
本文介绍了如何在QEMU中挂载虚拟分区、创建和编译简单的Linux内核模块,并在QEMU虚拟机中加载和测试这些内核模块,包括创建虚拟分区、编写内核模块代码、编译、部署以及在QEMU中的加载和测试过程。
177 0
内核实验(三):编写简单Linux内核模块,使用Qemu加载ko做测试
|
3月前
|
测试技术 Go
写出高质量代码的秘诀:Golang中的测试驱动开发(TDD)
写出高质量代码的秘诀:Golang中的测试驱动开发(TDD)