go test 怎么做测试

本文介绍了Go语言中如何进行单元测试的方法,包括使用gotest工具的基础操作,展示了一个实际工程项目中如何组织测试代码,并提供了几种常见问题的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在用go语言编程。相对于c/c++等其他编程。

go的测试代码一般都是同在在对应源码所在文件路径。

如果是一个大的工程。假设工程名为work ,所在的路径在$GOPATH/work下

如:

main.go

cli --|

       command_cli.go

cmd-|

       web_handler.go

等等

其对应的go test文件是这样的:

main.go

main_test.go

cli--|

     command_cli.go

     command_cli_test.go

cmd--|

      web_handler.go

      web_handler_test.go

 

下面看如何做单元测试。

1、go test

在所在工程文件下 go test则是测试当前文件夹下所有测试用例。

首先进入$GOPATH/work下 输入go test就是在当前 main_test.go

2、go test -v

显示测试通过和不通过的所有测试结果。

3、go test  command_cli_test.go测试某个测试文件

在这个时候可能存在因为没有main函数。所以需要输入参数。

也就是会提示说command-in-argument的情况

因为1、并不是所有的测试是单元测试。2、当前功能函数不依赖于"ENV",只是需要输入参数

解决办法

1、设置全局环境变量:

var envSetting = os.Getenv("TEST_ENV")

然后在init输入参数

func init(){

    flags.Parse()

    myEnv = *envFlag

    //...

}

 

2、打桩main .如

var flagvar ini

func init(){

  flag.IntVar(&flagvar, "flagname", 1234, "help for flagname")

}

func main(){

     flag.Parse()

     submain(flag.Args)

}

func submain(args [] string){

  ...

}

 

测试main_test.go时

func TestSomething(t *testing.T){

  flagvar = 23

      args := [] string{"a","b","c"}

      submain(args)

      ...

}

转载于:https://www.cnblogs.com/maypen/p/6992759.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值