单元测试
jeffrey11223
这个作者很懒,什么都没留下…
展开
-
走进golang单元测试
工作需求,各个服务的代码需要陆陆续续加入单元测试。作为这次单元测试和持续集成持续发布的推动人,这几天都在查找golang单元测试相关的资料和实践。单元测试的作用: 提高代码的可维护性。 代码的可维护性是指增加一个新功能,或改变现有功能的成本,成本越低,可维护性即越高。 是修改代码乃至未来代码重构的信心保证。 持续集成的重要部分。单元测试需要注意的点: 单元测试的测试用例要覆盖常用...原创 2018-03-23 20:12:35 · 655 阅读 · 0 评论 -
golang单元测试之mock
搞单元测试,如果碰到这些情况: 1,一个函数,内部包含了很多并且很深的调用,但是如果单单测这个函数,其实实现的功能很简单。 2,一个函数,包含了其他还未实现的调用。 3,函数内部对数据的要求极为苛刻。那么这时候就可以考虑使用mock来处理。mock,简而言之就是可以通过注入我们所期望返回的数据,或者我们所期望传递的参数,来避免上面那些情况,其原理则是通过反射来实现。这次就来看看g...原创 2018-03-30 21:01:58 · 7957 阅读 · 0 评论 -
基于gin的单元测试之httptest
目前我们的后端服务提供大量的restful api接口,每次上线都需要测试那边回归一遍这些接口,造成人力的浪费。正好借着这次单元测试和持续集成,我们引入了httptest框架,结合gin来做接口单元测试。httptest是golang官方提供的一个包,位于/src/net/http/httptest下。其原理的话我也看了源码研究了下,这里大致说下,它有一个ResponseRecorder结...原创 2018-04-04 16:53:04 · 9041 阅读 · 2 评论 -
golang sync.once的应用
sync.once是被用于全局执行单次函数的场景,用法比较简单。 我们用到它主要是为了单元测试的执行,因为有些单元测试的函数需要和db交互,还有log的初始化,config配置文件的初始化,等等,这些其实都只需要执行一次就够了,对于单元测试来说,如何知道这些是否执行过呢,那就用sync.once,这样我就不需要关心这些是否重复执行,只要在每个用例的最前面执行sync.once的方法就行了。s...原创 2018-04-13 18:43:34 · 1579 阅读 · 0 评论