iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >GO中的单元测试怎么实现
  • 366
分享到

GO中的单元测试怎么实现

2023-07-04 12:07:20 366人浏览 泡泡鱼
摘要

这篇“Go中的单元测试怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“GO中的单元测试怎么实现”文章吧。  

这篇“Go中的单元测试怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“GO中的单元测试怎么实现”文章吧。

                           

单元测试,是指对软件中的最小可测试单元进行检查和验证

单元就是人为规定的最小的被测功能模块

一般来说,要根据实际情况去判定其具体含义,如 C 语言中单元指一个函数,Go 里面也单元也是一个函数

单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

单元测试,咱们平时也叫它单测,平时开发的时候,也需要写一些 demo 来测试我们的项目中的函数或者某个小功能

go test 单元测试

GO 语言里面的单元测试,是使用标准库 testing

有如下简单规则:

  • 导入 test 标准库

  • 单测文件名,后面跟上_test

  • 单测文件中的函数名为 Test开头,且参数必须是 t *testing.T

简单例子:

写一个简单的例子,添加后缀和前缀

.├── cal.go├── cal_test.go├── lll└── sub.go

cal.go

package mainfunc Addprefix(str string) string {    return "hello_"+str}func Addsuffix(str string) string {    return str+"_good"}

cal_test.go

package mainimport "testing"func TestAddprefix(t *testing.T) {        Addprefix("xiaomotong")}func TestAddsuffix(t *testing.T) {        Addsuffix("xiaomotong")}

sub.go

package mainfunc MyAdd(a int, b int) int  {    if a+b > 10{        return 10    }    return a+b}func MySub(one int, two int) int{    if one - two < 0{        return 1    }    return one - two}

sub_test.go

package mainimport "testing"import "fmt"func TestMyAdd(t *testing.T) {    num := MyAdd(4 ,9)    fmt.Println(num)    num = MyAdd(4 ,2)    fmt.Println(num)}

执行单元测试

go test -v

  • -v

-v 是参数会显示每个用例的测试结果,显示执行的单测函数,是否通过以及单测的时候

运行结果如下

=== RUN   TestAddprefix--- PASS: TestAddprefix (0.00s)=== RUN   TestAddsuffix--- PASS: TestAddsuffix (0.00s)=== RUN   TestMyAdd106--- PASS: TestMyAdd (0.00s)PASSok      my_new_first/golang_study/later_learning/gotest 0.002s

在包目录下执行 go test ,会执行包里面所有的单元测试文件

只运行指定的单测函数

咱们可以这样用:

go test -run TestMyAdd -v

结果如下:

=== RUN   TestMyAdd106--- PASS: TestMyAdd (0.00s)PASSok      my_new_first/golang_study/later_learning/gotest 0.002s

子测试

就是在我们写的单测函数中,调用 testing 包里的 Run 方法,跑子测试

咱们改造一下上述的 sub_test.go

package mainimport "testing"import "fmt"func TestMyAdd(t *testing.T) {    num := MyAdd(4 ,9)    fmt.Println(num)    num = MyAdd(4 ,2)    fmt.Println(num)}func TestMySub(t *testing.T) {        t.Run("one", func(t *testing.T) {                if MySub(2, 3) != 1 {                        t.Fatal("cal error")                }        })        t.Run("two", func(t *testing.T) {                if MySub(3, 1) != 2 {                        t.Fatal(" error ")                }        })}

单独调用子测试函数,执行 go test -run TestMySub/one -v

=== RUN   TestMySub=== RUN   TestMySub/one--- PASS: TestMySub (0.00s)    --- PASS: TestMySub/one (0.00s)PASSok      my_new_first/golang_study/later_learning/gotest 0.003s

生成报告,计算覆盖率

  • 生成覆盖率报告文件

go test -v -covermode=count -coverprofile=cover.out

  • 使用 go tool 转成 html 格式

go tool cover -html=cover.out -o cover.html

在浏览器中打开 html 文件,可以查看到如下报告

GO中的单元测试怎么实现

图中绿色的部分是已覆盖,红色的部分是未覆盖,咱们的例子已经全部覆盖具体的函数功能

go test 后面的指令,咱们也可以看帮助文档

GO中的单元测试怎么实现

以上就是关于“GO中的单元测试怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: GO中的单元测试怎么实现

本文链接: https://www.lsjlt.com/news/345061.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • GO中的单元测试怎么实现
    这篇“GO中的单元测试怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“GO中的单元测试怎么实现”文章吧。  ...
    99+
    2023-07-04
  • Django中怎么实现单元测试
    在Django中,可以使用Django提供的TestCase类来编写单元测试。下面是一个示例: 创建一个测试类,并继承自djang...
    99+
    2024-03-06
    Django
  • Node.js中怎么实现单元测试
    Node.js中怎么实现单元测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为啥需要单元测试?所谓单元测试,就是对某个函数或者API进行正确性验证。来看个简单的例子add1....
    99+
    2023-06-17
  • Java中怎么实现单元测试与集成测试
    Java中怎么实现单元测试与集成测试,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Maven测试代码结构的组织我们知道在Maven工程结构中“src/test”目录是专门用...
    99+
    2023-06-16
  • android单元测试怎么实现
    Android单元测试可以通过使用JUnit框架和Android Testing Support Library来实现。以下是实现A...
    99+
    2023-08-29
    android
  • python中怎么实现unittest单元测试
    python中怎么实现unittest单元测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。说明导入unittest模块。导入被测对象。创建测试类unittest.TestCa...
    99+
    2023-06-20
  • Hibernate单元测试怎么实现
    这篇文章主要介绍“Hibernate单元测试怎么实现”,在日常操作中,相信很多人在Hibernate单元测试怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate单元测试怎么实现”的疑惑有所...
    99+
    2023-06-17
  • 怎么实现Python的add5()单元测试
    本篇内容介绍了“怎么实现Python的add5()单元测试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!TestAdd5类由unittest...
    99+
    2023-06-17
  • SpringBoot+TestNG单元测试怎么实现
    这篇“SpringBoot+TestNG单元测试怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot+...
    99+
    2023-06-08
  • 如何在go中实现CLI命令的单元测试
    小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《如何在go中实现CLI命令的单元测试》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,...
    99+
    2024-04-05
  • Go 语言单元测试
    php小编鱼仔今天为大家介绍一下Go语言的单元测试。在软件开发中,单元测试是非常重要的一环。通过编写测试用例,我们可以验证代码的正确性,提高代码质量和可维护性。Go语言提供了丰富的测试...
    99+
    2024-02-09
    go语言
  • Vue中怎么利用case实现单元测试
    Vue中怎么利用case实现单元测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。测试关注点对于vue组件,单元测试测试主要关...
    99+
    2024-04-02
  • SpringBoot+TestNG单元测试的实现
    目录背景接口测试用例,针对入参进行设计:言归正传!背景 由于开发任务进度紧张,接口及基础数据提供不全,即使设计全面的接口测试用例也无法全面有效的进行覆盖测试;且又因为单接口测试用例...
    99+
    2024-04-02
  • 怎么在Android中利用Activity实现单元测试
    这期内容当中小编将会给大家带来有关怎么在Android中利用Activity实现单元测试,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。对Acitivity的测试对于Activity,我们大致有两种测试需求...
    99+
    2023-05-30
    android activity
  • Golang实现单元测试中的接口层
    目录环境代码base case单元测试工具方法单元测试问题优化点总结上次我们已经搞定了逻辑层的单元测试,这次我们来康康接口层的单元测试。接口层主要负责的就是请求的处理,最常见的就是 ...
    99+
    2023-03-11
    Golang单元测试 接口层 Golang单元测试 Golang接口层
  • Go单元测试对GORM进行Mock测试
    目录前言项目准备初始化测试工作对Create进行Mock测试Get 操作的Mock测试Update 操作的Mock测试总结前言 在 Go 单元测试这个系列的第二部分 数据库...
    99+
    2024-04-02
  • Golang实现单元测试中的逻辑层
    目录准备工作基本 case 代码生成 mock 接口编写单元测试优化mockgen总结前面我们完成了最麻烦的数据层的单元测试,今天我们来看看单元测试中最容易做的一层,数据逻辑层,也就...
    99+
    2023-03-10
    Golang单元测试 逻辑层 Golang单元测试 Go 单元测试
  • Go语言中的性能测试与单元测试的区别
    性能测试评估应用程序在不同负载下的性能,而单元测试验证单个代码单元的正确性。性能测试侧重于测量响应时间和吞吐量,而单元测试关注函数输出和代码覆盖率。性能测试通过高负载和并发模拟实际环境,...
    99+
    2024-05-08
    单元测试 性能测试 go语言
  • Go 函数单元测试最佳实践
    go 单元测试最佳实践包括:使用标准 testing 包分解大型函数注重测试输入和输出覆盖所有语句测试边缘情况使用依赖注入 Go 函数单元测试最佳实践 单元测试是测试软件应用程序的基本...
    99+
    2024-04-30
    go 单元测试 git 标准库
  • Spring Boot中怎么利用JUnit 5实现单元测试
    这篇文章给大家介绍Spring Boot中怎么利用JUnit 5实现单元测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 忽略测试用例执行JUnit 4:@Test  @Ignore ...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作