`
lavafree
  • 浏览: 539683 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

go语言测试test

    博客分类:
  • go
阅读更多

Go语言通过testing包提供自动化测试功能。包内测试只要运行命令 go test,就能自动运行符合规则的测试函数。
Go语言测试约定规则
1.一般测试func TestXxx(*testing.T)
测试行必须Test开头,Xxx为字符串,第一个X必须大写的[A-Z]的字幕
为了测试方法和被测试方法的可读性,一般Xxx为被测试方法的函数名。

2.性能测试func BenchmarkXxx(*testing.B)
性能测试用Benchmark标记,Xxx同上。

3.测试文件名约定
go语言测试文件名约定规则是必须以_test.go结尾,放在相同包下,为了方便代码阅读,一般go源码文件加上_test
比如源文件my.go 那么测试文件如果交your_test.go,her_test.go,my_test.go都可以,不过最好的还是my_test.go,方便阅读

举例,源文件my.go

package my

func add(x, y int) int {
	return x + y
}

 创建一个my_test.go文件,需要引入testing

package my

import "testing"

func TestAdd(t *testing.T) {
	if add(1, 2) != 3 {
		t.Error("test foo:Addr failed")
	} else {
		t.Log("test foo:Addr pass")
	}
}

func BenchmarkAdd(b *testing.B) {
	// 如果需要初始化,比较耗时的操作可以这样:
	// b.StopTimer()
	// .... 一堆操作
	// b.StartTimer()
	for i := 0; i < b.N; i++ {
		add(1, 2)
	}
}

 运行测试 go test,输出:

PASS

ok github.com/my 0.010s
要运行性能测试,执行命令
go test -test.bench=".*"
输出
PASS
BenchmarkAdd 2000000000 0.72 ns/op
ok github.com/my 1.528s

更多测试命名,用go help test
go的测试是不是很好很强大!^_^

文章出处: http://blog.gcove.net/go%E8%AF%AD%E8%A8%80%E6%B5%8B%E8%AF%95test.html

分享到:
评论

相关推荐

    Go-Test一个简单的Go测试工具类

    为了更好地理解和使用`Go-Test`,你应该熟悉Go语言的测试规范,理解`testing`包的基本用法,然后逐渐探索`Go-Test`提供的高级功能。 总的来说,`Go-Test`是一个强大的工具,能够提升Go语言项目的测试效率和质量。...

    Go语言圣经,golang学习入门到精通

    Go语言,又称Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的语言。它旨在提高编程效率,简化并发编程,并强调简洁的编程哲学。Go语言的设计受到了多门经典编程语言的影响,如C语言、...

    GO 语言学习辅导共220页.pdf

    Go语言的工具链也非常强大,包括go build、go test等,可以帮助开发者进行编译、测试和部署。 通过深入学习《GO 语言学习辅导》,无论是对Go语言的初学者还是有一定经验的开发者,都能从中获得宝贵的知识和实践经验...

    消息队列zeromq的go语言测试实例包

    消息队列zeromq的go语言测试实例包,为学习安装部署zeromq的同学提供,注意该安装包中的测试实例为go语言版本,要根据各位安装的zeromq版本下载。

    Go-Golang单元测试快速入门

    本教程将带你快速入门Go语言的单元测试,了解如何利用内置的`testing`包编写和运行测试用例。 Go语言的单元测试基于其标准库中的`testing`包,该包提供了编写、组织和执行测试的基本框架。下面我们将深入探讨`...

    Go-ldap-test-tool一个轻量级的ldap测试工具

    【Go-ldap-test-tool:一个轻量级的LDAP测试工具】 在信息技术领域,LDAP(Lightweight Directory Access Protocol)是一种用于访问和管理分布式目录服务的标准协议。它被广泛应用于组织内部的身份验证、用户权限...

    学习 Go 语言(Golang)_go语言_Go_

    Go 的工具链非常出色,包括 `go build`(编译程序)、`go test`(编写和运行测试)、`go fmt`(自动格式化代码)等。这些工具使得开发流程更加高效和统一。 8. **错误处理** Go 语言采用错误返回的方式处理异常,...

    Go语言编程_许式伟_完整版1

    对于软件工程的支持,Go语言有着内置的包管理和构建工具,如`go build`和`go test`,简化了项目的构建和测试流程。此外,Go语言采用静态类型,强类型检查可以减少运行时错误,提高代码质量。同时,Go语言的接口设计...

    20小时入门学会go语言.docx

    Go语言,又称Golang,是由Google公司设计的一种静态类型的、垃圾回收的、编译型的、并发型且具有垃圾回收功能的编程语言。它旨在提高开发效率,兼顾运行速度,使得开发者能够在保持高效性能的同时,享受到简洁的语法...

    Go语言测试框架详解及其在TDD中的应用

    内容概要:本文详细介绍了Go语言的测试框架及其在测试驱动开发(TDD)中的应用。首先从测试基础入手,涵盖测试文件和测试函数的规范,以及如何使用go test命令运行测试。接着,介绍了单元测试的重要性,并提供了具体...

    Go语言编程_许式伟_完整版_Go_go_beneath2eh_

    Go语言,也称为Golang,是由Google公司开发的一种静态类型的、编译型的、并发型的、垃圾回收的、C风格的编程语言。它在设计上融合了现代编程语言的特性,如并发原语、类型系统和内存管理,同时保持了简洁的语法和...

    go语言一些小例子例程

    Go语言,也被称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。它的设计目标是提高开发效率,同时保持程序的高性能和可靠性。Go语言以其简洁的语法、高效的并发模型以及...

    go语言基本语言源码

    Go语言,又称Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收式的、具有C风格的编程语言。它的设计目标是提高编程效率,简化多线程编程,以及优化网络和系统服务的开发。下面将详细讨论Go...

    Google资深工程师深度讲解Go语言

    Go语言,又称Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的编程语言。自2009年发布以来,Go语言因其简洁的语法、高效的性能以及对并发编程的良好支持,迅速在IT界赢得了广泛的赞誉。本...

    Go语言Action

    6. **Go语言测试与调试**:介绍如何编写测试用例,使用go test工具,以及调试技巧。 7. **Go语言的性能优化**:包括内存管理、CPU使用、程序性能分析等,帮助开发者写出高效的Go程序。 8. **Go语言生态**:介绍Go...

    Go语言入门经典 源码

    - Go语言的源代码通过`go build`命令编译,`go run`可以直接运行单个源文件,`go test`用于测试。 通过这个“Go语言入门经典 源码”资源,初学者可以逐步学习Go语言的基础概念、核心特性以及实际应用,配合代码...

    go语言安装包-版本-go1.20

    Go语言,也称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。自2009年发布以来,Go语言因其简洁的语法、高效的性能以及对并发处理的良好支持,逐渐在云计算、网络服务和...

    golang 语言程序设计

    9. **Go命令工具**:Go语言的工具链非常强大,包括了go build(编译)、go test(测试)、go fmt(格式化代码)等一系列命令,简化了开发流程。 10. **Go语言哲学**:Go语言强调简洁、清晰和高效,其设计哲学鼓励...

    使用go语言测试grpc工程源码

    在本文中,我们将深入探讨如何使用Go语言进行gRPC工程的测试,特别是在处理源码级别的测试。gRPC是一个高性能、开源和通用的RPC框架,它基于HTTP/2协议和Protocol Buffers(protobuf)来定义服务接口。Go语言,作为...

    go语言学习示例

    Go语言,又称Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的、C风格的编程语言。它旨在提高程序员的生产效率和系统的可扩展性,特别适合构建大规模的网络服务和分布式系统。本资料包是...

Global site tag (gtag.js) - Google Analytics