工作需求,各个服务的代码需要陆陆续续加入单元测试。作为这次单元测试和持续集成持续发布的推动人,这几天都在查找golang单元测试相关的资料和实践。
单元测试的作用:
提高代码的可维护性。
代码的可维护性是指增加一个新功能,或改变现有功能的成本,成本越低,可维护性即越高。
是修改代码乃至未来代码重构的信心保证。
持续集成的重要部分。
单元测试需要注意的点:
单元测试的测试用例要覆盖常用的输入组合、边界条件和异常。
单元测试代码本身要尽量简单,如果测试代码太复杂,那么其本身就可能有bug。
golang的第三方单元测试框架很多,最后我选择了GoConvey这个框架,它有如下特点:
1,基于go test的单元测试框架
2,开箱即用
3,丰富的断言库,具体断言例子可看下方链接
https://github.com/smartystreets/goconvey/blob/master/examples/assertion_examples_test.go
4,支持自定义断言
5,支持跳过用例
6,集成了web界面来执行大规模的单元测试,同时带有代码覆盖率的统计
GoConvey使用:
首先,在要测的函数的文件下方,新建一个“要测的文件名_test“.go文件。
func