前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么使用测试,可以为我们带来什么

为什么使用测试,可以为我们带来什么

作者头像
陌无崖
发布2019-08-30 17:31:00
4020
发布2019-08-30 17:31:00
举报

不忘初心,砥砺前行

作者 | 陌无崖

转载请联系授权

导语

在对一个大项目进行开发的时候,测试时必不可少的,尤其是在微服务中,测试可以提高我们对代码的信心,在实际开发中,不可能等到将所有的代码部署完成才测试进行,在开发中,我们应该尽可能的预测出程序运行中会出现的各种情况,用模拟数据的方式完成测试。

Hello World

我们编写一个简单的程序

代码语言:javascript
复制
package main

import "fmt"

func Hello() string {
    return "Hello, world"
}

func main() {
    fmt.Println(Hello())
}

在这个程序中,可以看到,最简单的测试便是直接在主函数中进行输出,这样对于简单的程序是可行的方案,然而试想如果你的程序很大,在你的主函数中将会引用各种包,来进行测试输出在控制台,到时我们的控制台肯定也是充满了各种日志,用这种方式,将会大大的降低我们的开发时间,实际上在Go中造就为我们提供了一个测试的包,用这个包,我们可以在运行程序前统一的进行测试。如果测试成功便直接部署,不需要在修改我们的任何文件。我们可以测试上面的代码如下:

这里需要注意的是我们的测试文件的命名格式必须为*_test.go。测试的函数必须是Test命名开头,参数同时也必须是testing.T,这样Go才会知道这是一个测试函数。

代码语言:javascript
复制
package main

import "testing"

func TestHello(t *testing.T) {
    got := Hello()
    want := "Hello, world"

    if got != want {
        t.Errorf("got '%s' want '%s'", got, want)
    }
}

那么我们如何进行输出呢?在Go中提供了go test命令行

代码语言:javascript
复制
go test hello_test.go

如果我们想要得到更多的信息,我们可以使用以下命令

代码语言:javascript
复制
go test -v hello_test.go

除了以上命令,还有其他命令如下:

扩展

在Go中,我们在编写代码之前,经常先编写测试文件,然后用测试结果和真实想要的结果对比来更改我们的程序,这种方式便叫做测试驱动开发

重构测试

假如我们有一个需求希望输出自己想要的结果,如下:

代码语言:javascript
复制
func TestHello(t *testing.T) {
    got := Hello("mowuya")
    want := "Hello, mowuya"

    if got != want {
        t.Errorf("got '%s' want '%s'", got, want)
    }
}

按照刚刚的方法此时测试输出结果如下,会明显的看到程序出现了问题,因此我们可以按照这个问题的来源来修改我们的函数

修改之后

代码语言:javascript
复制
func Hello(str string) string {
    return "Hello, " + str
}

总结

以上的例子比较简单,主要是了解为什么使用测试,以及测试可以为我们做些什么,在下面的系列文章中,将会逐渐将代码难度加大。

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 golang技术杂文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导语
  • Hello World
  • 扩展
  • 重构测试
  • 修改之后
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档