文章目录一、本次学习重点内容:二、详细知识点介绍:1、高质量编程简介什么是高质量?编程原则:2、编码规范注释:代码格式:命名规范变量:函数:package:错误和异常处理:错误的Wrap和 Unwrap:错误判定:3、性能优化简介简介4、性能优化建议BenchMark——性能测试Slice——预分配内存切片:陷阱——大内存为释放map——预分配内存字符串处理1、string拼接2、strings            
                
         
            
            
            
            一、go test基础用法: go test [build/test flags] [packages] [build/test flags & test binary flags]Go test 会自动测试由导入路径命名的软件包。并以下格式打印测试结果的摘要:ok archive/tar 0.011s
FAIL archive/zip 0.022s
ok compress/gzip            
                
         
            
            
            
            当直接使用IDE进行单元测试时,有没有好奇它时如何实现的?比如GoLand写的测试用例。所有的代码都需要写测试用例。这不仅仅是对自己的代码负责,也是对别人的负责。最近工作中使用glog这个库,因为它对外提供的方法都很简单,想封装处理一下。但却遇到了点麻烦:这个包需要在命令行传递log_dir参数,来指定日志文件的路径。所以,正常运行的话,首先需要编译可执行文件,然后命令行指定参数执行。如下示例:g            
                
         
            
            
            
            不论是开源项目,还是日常程序的开发,测试都是必不可少的一个环节。今天我们开始进入 Go 测试模块 testing 的介绍。差不多两周没有更新 Go 文章了,最近状态不是太好。这篇文章本来准备写的内容非常丰富,结果有点力不从心,移除了好几个小节。思考下来,还是决定拆成几篇。另外,参考资料中有几篇很精彩的文章,有兴趣也可以读一下。简单概述我们选择开源项目,通常会比较关注这个项目的测试用例            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-16 21:45:59
                            
                                132阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录GoLang之go test测试1.介绍2.函数3.测试函数格式3.1格式3.2失败示例3.3成功示例13.4成功示例23.5成功示例33.6成功实例44.基准函数4.1成功实例14.2成功实例24.3性能比较函数 GoLang之go test测试1.介绍Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具; go tes            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-22 13:07:00
                            
                                88阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Go语言测试:testing学习参考来源:https://www.liwenzhou.com/posts/Go/16_test/go test工具必须导入包:import "testing"go test命令是一个按照一定约定和组织的测试代码的驱动程序,所有以_test.go为后缀名的源代码文件都是go test测试的一部分,不会被go build编译到最终的可执行文件中。在*_test.go文件            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-28 18:57:53
                            
                                45阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            运行指定的test 单元测试函数 go test -mod=vendor mount_test.go mount_linux.go mount.go -run TestParseMountInfo            
                
         
            
            
            
            go test语法:go test [build/test flags] [package] [build/test flags && test binary flags]test flaggo help testflag-bench 指定运行的基准测试,默认不进行基准测试,常用-bench=.来运行所有的基准测试-benchtime 指定每个基准测试运行的时间,默认是1s,例如-            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-05 06:30:13
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            测试Maurice Wilkes,第一个存储程序计算机EDSAC的设计者,1949年他在实验室爬楼梯时有一个顿悟。在《计算机先驱回忆录》(Memoirs of a Computer Pioneer)这本书中,他回忆到:“忽然间有一种醍醐灌顶的感觉,我整个后半生的美好时光都将在寻找程序BUG中度过了”。肯定从那之后的大部分正常的码农都会同情Wilkes过分悲观的想法,虽然也许会有人困惑于他对软件开发            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-04 14:18:02
                            
                                30阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、单元测试的意义维护单元测试,需要投入一定的时间和精力,但是作为一个长期迭代的产品,定义完整的单元测试的收益是绝对大于投入的,其意义主要有。相比于代码创造的时间,工程修改和维护需要占用大量的时间。单元测试的意义,就在于修改和维护的用例可以重复使用,减少重复bug的出现,提升代码的质量和研发速度。如果某些功能难以写测试用例,那么便说明代码的耦合性较强。因此单元测试,可以检验和保证代码的松散耦合。本            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-09 15:12:57
                            
                                78阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言Go语言本身集成了轻量级的测试框架,由go test命令和testing包组成。包含单元测试和压力测试,是保证我们编写健壮Golang程序的有效工具。 演示环境$ uname -a
Darwin 18.6.0 Darwin Kernel Version 18.6.0: Thu Apr 25 23:16:27 PDT 2019; root:xnu-4903.261.4~2/RELEAS            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-09 18:36:18
                            
                                123阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Go 自带了测试框架和工具,在 testing 包中,以便完成单元测试(T 类型)和性能测试(B 类型)。一般测试代码放在*_test.go 文件中,与被测代码放于同一个包中。单元测试测试函数名称格式是:Test[^a-z],即以 Test 开头,跟上非小写字母开头的字符串。每个测试函数都接受一个testing.T 类型参数,用于输出信息或中断测试。测试方法有:Fail: 标记失败,但继续执行当前            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-07 10:36:46
                            
                                81阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             Golang 标准库 context1. 基本概念2. 实现说明2.1 Context2.2 emptyCtx2.3 cancelCtx2.4 valueCtx2.5 timerCtx3. 实例3.1 WithCancel3.2 WithDeadline3.3 WithTimeout3.4 WithValue4. 总结4.1 传递共享的数据4.2 取消goroutine4.3 防止gorouti            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-25 11:41:48
                            
                                17阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            go test 可以执行单元测试 , 一般把所有go文件测试单元都执行一遍 现在如果想要执行某一个指定的测试函数 , 可以像这样 go test -v -run 测试函数名字 例如: rpc_test.go package tools import ( "go-fly-muti/frpc" "tes            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-06-17 19:16:24
                            
                                10000+阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            开发程序其中很重要的一点是测试,我们如何保证代码的质量,如何保证每个函数是可运行,运行结果是正确的,又如何保证写出来的代码性能是好的,我们知道单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设计上的一些问题,让线上的程序能够在高并发的情            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-05-06 10:55:00
                            
                                236阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            区别go test 会把当前目录下,所有*_test.go 文件,都编译并且运行,控制台会输出test逻辑里的打印信息go test ./ 同上,但是控制台是不激活的在成功时,go test ./ 打印G:\go_workspace\GOPATH\src\errorX>go test ./ok      errorX  (cached)go test 打            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-11-22 11:29:40
                            
                                81阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Go 命令go来查看它们:  图1.3 Go命令显示详细的信息 这些命令对于我们平时编写的代码非常有用,接下来就让我们了解一些常用的命令。 go build 这个命令主要用于编译代码。在包的编译过程中,若有必要,会同时编译与之相关联的包。如果是普通包,就像我们在1.2节中编写的mymath包那样,当你执行go build之后,它不会产生任何文件。如果你需要在$GOPATH/pkg下生成相应的文件            
                
         
            
            
            
            为了帮助开发者对代码进行测试,Go语言也提供了相关的单元测试的基础框架。除此之外,Go语言还提供了简单的性能测试框架,给开发者提供了对比和改善算法的便利手段。Go语言的性能测试框架据说是参考了2002年JavaOne的《How NOT To Write A Microbenchmark》,它的基本测试机理是在一定时间内循环运行测试程序,并最终得出测试程序每次运行的平均时间。不仅如此,性能测试框            
                
         
            
            
            
            第十一章 单元测试让软件的复杂性可得到控制两个有效的方法: 
  代码在被正式部署前需要进行代码评审自动化测试Go语言的测试技术是相对低级的,。它依赖一个go test测试命令和一组按照约定方式编写的测试函数,测试命令可以运行这些测试函数11.1go test划重点
go test命令是一个按照一定的约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的源文件并不是go bu            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-14 08:05:20
                            
                                0阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、为什么要使用Mock测试当我们进行测试时,有时测试代码依赖于环境,耦合度较高。这样的测试会导致在不同环境下产生不一致的结果。举个栗子,我们有一个函数读取文件的第一行:func ReadFirstLine() string {
   open, err := os.Open("test.txt")
   defer open.Close()
   if err != nil {
      lo