go基础之测试

Posted zzxiaoma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go基础之测试相关的知识,希望对你有一定的参考价值。

testing包提供了在Go中实现基本的自动测试的能力,go没有强制要求文件名,但一般测试文件名会与被测试文件的名加上_test.go后缀结尾,并且测试文件和被测试文件必须位于一个包内。测试函数一般是Test开头,参数为(*testing.T)

先看被测试的源代码,这个功能就是结构体转换成json格式字符串。

package main

import (
"encoding/json"
"log"
)

type Person struct
Name string `json:"name,omitempty"`
Age int `json:"age,omitempty"`


func Decode() string
p := Person
Name: "George",
Age: 40,


jsonByteData, err := json.Marshal(p)
if err != nil
log.Fatal(err)

jsonStringData := string(jsonByteData)
return jsonStringData

func main()
Decode()

测试代码

package main

import (
"testing"
)

func TestDecode(t *testing.T)
code := Decode()
if code != `"name":"George","age":40`
t.Error("error", code)

在代码目录下执行go test,输出下面代表测试成功

PASS

ok      gin/src/testing 0.468s

如果失败,输出错误的方法,还会打印错误日志

--- FAIL: TestDecode (0.00s)

   t_test.go:10: error "name":"George","age":40

FAIL

exit status 1

FAIL    gin/src/testing 0.383s

以上是关于go基础之测试的主要内容,如果未能解决你的问题,请参考以下文章

Go语言基础之单元测试

Go语言基础之单元测试

go语言学习笔记 — 基础 — go工具(5.2): 基准测试 (性能测试)—— 获得代码内存占用和运行效率的性能数据

Go基础之单元测试反射网络编程操作Redis操作MySQL

Go基础之单元测试反射网络编程操作Redis操作MySQL

go语言如何书写测试模块