![0059ee0507d4554a1f86c193b596c3a3.png](https://img-blog.csdnimg.cn/img_convert/0059ee0507d4554a1f86c193b596c3a3.png)
人生苦短,我用Mockito
没错,我~~胖虎~~今天就是要教大家怎么写单元测试!
我的经(keng)历
在书写Swift引擎test时,常常需要和数据库,文件系统等等一些不太稳定的独立系统打交道,比如生成Cube数据,查询Cube数据,读写配置啥的,开始都是生成真实数据,但是很不稳定,test几乎每次都挂。
而且最初写test的思路是完全错误的,当时想当然地认为只要把大致流程走一遍,跑过就行。后来我转变了思路,即针对每个公共方法进行单独测试,要对其返回值进行验证,必要时要验证其内部的流程是否走对。
其中,验证内部流程是否走对的意思是只测试到方法当前一层,调用的底层方法不用管是否成功,也不用管是否发生了效果,如:读写文件的test,只需验证是否调用了读写的底层IO方法就行,至于文件是否真正做了读写,读写是否成功,本test范围内不关心,那是IO test要验证的内容。
所以如果每个test都遵循这个规范,最后发挥的威力肯定是巨大的,test也要解耦的!
借由Mokito+PowerMockito框架,我最终完成了整个test的重构,不得不说Mockito太好用了&