单元测试 学习

单元测试是什么?

在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 程序单元是应用的最小可测试部件。

这里的模块,不是 go 里面的包,程序的最小单元应该是某个具体的函数,甚至是某个里面没有任何项目内函数调用的函数。

注意不要把单元测试写成集成测试。单元测试的范围仅仅在这个独立单元中,不依赖其他单元。而集成测试的目的是验证整个系统在真实环境下的功能行为,即将不同模块组合在一起进行测试。集成测试通常需要将项目启动起来,并且可能会依赖外部资源,例如数据库,网络,文件等。

单元测试应该被持续集成系统自动运行,报错了需要优先修复。

单元测试由最熟悉代码的人编写,就是开发者,不是测试者。

需要改造代码,让代码适合单元测试,函数所需的数据都在参数中指定,不要使用全局变量。纯函数是最好做单元测试的,比如 abs, sqrt 这些。

使用依赖注入,控制反转。

每个单元测试消耗的时间要短,最多几秒。

要把单元测试的代码和其他实现功能的代码同等对待,要注意简洁、可读、低重复。

对于外部系统,如 rpc, api 等使用 mock。

少量的磁盘读写可以不用 mock。

数据库为了节省时间使用内存数据库。

好处

  • 减少手工测试时间。
  • 测试都过了,能让人安心。
  • 利于重构,让人更清楚知道改动后影响的逻辑。
  • 降低耦合,依赖多、过于复杂的函数是不方便单元测试的,为了单元测试就得拆成一小块一小块的。

go 语言相关库

相关资料

转载于:https://my.oschina.net/u/1248114/blog/3066634

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值