#小白学Go-09# 编写测试代码

在读《代码整洁之道》这本书的时候,我就意识到测试代码编写的难度不亚于项目代码,因为需要考虑到方方面面的情况,保证测试时没有疏漏的。今天跟着教程(https://golang.google.cn/doc/tutorial/add-a-test)学习一下。

需要测试的项目整理

在编写测试代码之前,我们得花点时间弄清楚我们需要测试什么东西。
目前的代码,我们实现了一个功能,那就是输入一个人名集合,我们能够对于每个人名输出一个打招呼的句子。所以我们首先要测试的就是,我们给定一个输入,是否真的能够得到预期的句子。
这就够了吗?
测试代码需要考虑到可能会发生的错误,之前其实我们有说过,我们需要处理输入为空的情况,因为没有人名是空的,如果输入是空的,我们不能将错就错产生一句包含“空名字”的打招呼句子,而是需要输出一个错误提示。因此我们第二要测试的就是,如果输入是空的,代码能不能发现这个错误。

测试代码

改代码包含两个函数,分别对应两个测试任务,给定相应的输入,然后判断输出是否符合预期。需要注意的一点是,我们要测试的是实现功能的两个函数,所以我们的测试代码是在模块目录greetings中,并且以’_test’结尾,系统就会知道这个是测试文件,测试函数以’Test’开头,则编译器会知道这是测试函数。

测试代码:

在这里插入图片描述

测试结果

在greetings目录执行go test就可以看到测试结果,加-v 可以看到每个测试函数的测试情况。
在这里插入图片描述
可以看到目前代码是测试通过的,即对于对应的输入都能够产生预期的结果。

如果我们想要观察一下不通过的测试结果,我们在这里可以故意把我们的代码“改错”(不过要记得改回去!)。比如,我这里把原来代码的输出语句(下图的18行)改了一下,改成了下图19行的语句,即我们忘记往语句里加入对应的人名了,这样输出的打招呼句子就是缺少人名的或者含有不正确人名的。
在这里插入图片描述

然后执行测试,得到:
在这里插入图片描述
可以看到,测试代码也发现了在执行测试函数TestHelloName时结果输出有问题,这样后面的测试函数也不会执行测试了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值