Go-Testing

2024-05-14 02:58
文章标签 go testing

本文主要是介绍Go-Testing,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Go-Testing

要点

Go的自动化测试框架比JUnit、PyUnit等更加轻量级。要点如下: 
- 测试代码以xxx_test.go方式命名 
- 测试代码中import “testing” 
- 测试函数形如 func Testxyz(t *Testing.T) {…} 
- 执行测试:go test

示例

比较要创建一个mymath package。

mymath.go

package mymathfunc Add(x, y int) int {return x + y
}func Minus(x, y int) int {return x - y
}

mymath_test.go

package mymath_testimport "mymath"
import "testing"func TestAdd(t *testing.T) {ret := mymath.Add(2, 3)if ret != 5 {t.Error("Expected 5, got ", ret)}
}func TestMinus(t *testing.T) {ret := mymath.Minus(2, 3)if ret != -1 {t.Error("Expected -1, got ", ret)}
}

目录文件结构

D:\examples>tree /F .
文件夹 PATH 列表
卷序列号为 5645-602F
D:\EXAMPLES
│  helloworld.exe
│  helloworld.go
│  math.txt
│  the_shape.go
│
└─the_go_path├─pkg│  └─windows_amd64│          mymath.a│          shape.a│          shape2.a│└─src├─mymath│      mymath.go│      mymath_test.go│├─shape│      the_shape.go│└─shape2the_shape.goD:\examples>

go test

这里略过go install。

mymath.go有错误的情况

D:\examples\the_go_path\src\mymath>go test
--- FAIL: TestMinus (0.00s)mymath_test.go:16: Expected -1, got  5
FAIL
exit status 1
FAIL    mymath  0.425sD:\examples\the_go_path\src\mymath>

测试用例全部通过的情况

D:\examples\the_go_path\src\mymath>go test
PASS
ok      mymath  0.369sD:\examples\the_go_path\src\mymath>

这篇关于Go-Testing的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987558

相关文章

Go 三色标记法:一种高效的垃圾回收策略

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO系列: 记录博主学习GO语言的笔

Go语言中的go.mod与go.sum

问题1:什么是go.mod以及它是用来解决什么问题的? go mod 是 Go 语言引入的包管理工具,用于解决 Go 语言项目在依赖管理方面的问题。 传统上,若不使用go mod,则需要要通过GOPATH来管理依赖,而这种方式存在一些问题: 如1. 包管理依赖不明确 2. 依赖库的版本管理 3. 需要手动管理同步依赖的复杂性等 而go mod可以帮助开发者在项目中明确管理依赖的版

client-go删除job同时删除job关联的pod

问题描述 client-go使用以下方式删除job时,并不会把其关联的pod删除,从而导致这些pod成为了孤儿(orphan): err := clientSet.BatchV1().Jobs(namespace).Delete(name, &metav1.DeleteOptions{}) 在删除job的时候将job关联的pod也删除的方法: propagationPolicy := m

client-go入门之1:创建连接Kubernetes集群的客户端

文章目录 简介使用 简介 我们可以使用Dashboard或kubectl来访问k8s的API,也可以使用编程语言,如Go,Java,Python作为客户端来访问k8s。client-go是一个使用go语言编写的库,用来连接k8s集群并对集群资源进行操作。 使用 以下代码使用go连上k8s集群,并查询集群的节点信息: package mainimport ("fmt"meta

【经典算法】LeetCode 22括号生成(Java/C/Python3/Go实现含注释说明,中等)

作者主页: 🔗进朱者赤的博客 精选专栏:🔗经典算法 作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) ❤️觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论,💬支持博主,记得点个大大的关注,持续更新🤞 ————————————————- 首先,请注意题目链接有误,您提供的链接是LeetCode 14,但题目

深入理解go语言反射机制

1、前言        每当我们学习一个新的知识点时,一般来说,最关心两件事,一是该知识点的用法,另外就是使用场景。go反射机制作为go语言特性中一个比较高级的功能,我们也需要从上面两个方面去进行学习,前者告诉我们如何去使用,而后者告诉我们为什么以及什么时候使用。 2、反射机制 2.1 反射机制的基本概念         在 Go 语言中,反射机制允许程序在运行时获取对象的类型信息、访问对

go语言:数据库sql查询保存任意数量字段的数据

1、查询任意列数的表,并输出 func search() {rows, _ := db.Query("select * from users") // 查询数据columns, _ := rows.Columns() // 查询到的字段名列表values := make([]any, len(columns)) // 根据字段数量,创建接收字段值的列表f

Go 语言学习笔记之数组与切片

大家好,我是码农先森。 数组与切片的区别 在 Go 语言中,数组和切片是两种不同的数据结构,它们之间有以下主要区别。 参数长度: 数组(Array):数组的长度是固定的,在创建时就需要指定数组的长度,无法动态改变;只有长度信息,通过 len() 函数获取。 切片(Slice):切片是对数组的一个引用,底层使用的是数组的数据结构,具有动态长度,可以动态增加或减少元素,实现动态扩容;有长度和容量

go语言进阶实战学习(逐行注释)(1):两协程并发交替打印数字和字母

要求: 并发两协程交替打印数字和字母。一个协程打印数字,一个协程打印字母。 输出: 12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728 思路: 两个 channel 控制两个协程进行交替打印。sync.WaitGroup 控制主协程等待子协程完成。 完整代码: package mainim

Go语言的诞生背景

人不走空                                                                              🌈个人主页:人不走空       💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨   目录       🌈个人主页:人不走空       💖系列专栏:算法专题 ⏰诗词歌赋: