单元测试入门 | 青训营

77 阅读1分钟

引出测试

在我们的开发中,假设我们写了一个函数,它可以正常运行,但运行多的结果是否是正确的呢?这时,我们就需要对它去确认,这就叫单元测试。而性能测试则能发现我们在程序设计上的问题,保证程序的稳定和高并发。

Go语言中自带有testing测试框架和go test命令来实现单元测试性能测试

单元测试

示例

假如我有一个名为Sum的函数,我需要对它进行单元测试,需要进行以下步骤:

  1. 使用go mod init命令,生成一个go.mod文件。

  2. 再在该文件下,创建一个名为“XXX_test.go”的文件。注意:XXX一般为函数名,而后面的“_test”则是固定要求,不得修改。

    image.png

  3. 在sum_test.go下编写代码。注意,函数名和形参为TestXxx(t *testing.T).注意:Test之后的首个字母必须大写。

    image.png

4.在终端中使用go test -v指令,可得到测试日志。

image.png

说明

在测试日志中,RUN后写出的是测试函数,PASS则代表运行正确,如果错误,则会输出FAIL。而最下方的PASS代表的是整个测试的测试结果,假如我们有多个函数进行测试,只有全部正确,才会输出PASS。函数名之后跟的时间是调用的函数所花费的时间。但为什么最后花费的总时间却多了些出来呢?这里我们就需要讲一下testing测试框架了

testing框架首先会将sum_test.go引入,在main()函数中,它会调用TestSum()函数,而TestSum()函数内部又使用了Sum函数,所以它会接着调用,这就是testing框架的运行逻辑。