博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go 单元测试
阅读量:6344 次
发布时间:2019-06-22

本文共 1282 字,大约阅读时间需要 4 分钟。

  hot3.png

写了一个核心的功能,或者一个公用的模块,怎么知道代码运行是否正确,就需要编写一个单元测试的代码来进行检验。

go提供了单元测试的类库。

import (    "testing")

导入即可编写单元测试。

单元测试的文件,需要和被测试的代码在同一个包下,文件名需要以_test.go为后缀

package library //与当前要测试的包名相同import (    "testing")func TestOpt(t *testing.T)  {  //test code}

测试函数需要以Test开头,并且需要传入*testing.T的参数,格式为TestFunc(t *testing.T)

运行测试文件:

go test //或者go test 路径+包名 //测试单个文件go test xxx_test.go xxx.go//打印详细信息go test -v//统计代码覆盖率go test -cover

测试代码:

package userimport (   "testing")func TestUser(t *testing.T){   u := NewUser(1, 1473820432, "qiishyx", "123455", 1)   if u == nil{      t.Error("error object user")   }   if u.Id != 1{      t.Errorf("error id")   }   data := make(map[string]interface{})   data["Username"] = "chunlei"   u.Edit(data)   if u.Username != "chunlei"{      t.Errorf("update failed")   }   if !u.IsOnline() {      t.Errorf("user status error")   }}func TestManager(t *testing.T){   m := NewUserManager()   data := make(map[string]interface{})   data["Id"] = 1   data["Username"] = "qiisyhx"   data["Password"] = "123456"   data["Status"] = 0   if !m.AddUser(data){      t.Errorf("add user failed")   }   if !m.DeleteUser(data["Id"].(int)){      t.Errorf("delete user failed")   }   if !m.UpdateUser(data){      t.Errorf("update user failed")   }}

 

转载于:https://my.oschina.net/qii/blog/701082

你可能感兴趣的文章
grep -w 的解析_学习笔记
查看>>
量化交易之启航
查看>>
TX Text Control文字处理教程(3)打印操作
查看>>
CENTOS 7 如何修改IP地址为静态!
查看>>
MyCat分片算法学习(纯转)
查看>>
IO Foundation 3 -文件解析器 FileParser
查看>>
linux学习经验之谈
查看>>
mysqld_multi实现多主一从复制
查看>>
中介模式
查看>>
JS中将变量转为字符串
查看>>
servlet笔记
查看>>
JVM(五)垃圾回收器的前世今生
查看>>
CentOS 7 下安装 Nginx
查看>>
Spring Boot 自动配置之@EnableAutoConfiguration
查看>>
为了学习go我从0开始用beego写了一个简单个人博客(2)登陆管理
查看>>
职业女性:学会减压救自己!
查看>>
OSChina 周一乱弹 —— 这个需求很简单!
查看>>
OSChina 周一乱弹 —— 我当你是朋友,你却……
查看>>
[Android官方API阅读]___<Device Compatibility>
查看>>
如何写出好的产品需求文档(PRD)?
查看>>