Mock的那些事
首先,有人认为做UT时,有些代码是不可测的,甚至常常为了测试区该源代码。这其实并不是代码不可测试,而是作为开发的那个人没有完全理解什么叫做单元测试,或者说是公司里面限定的框架不能测试。
项目之前要求只能用mockito,居然有一种说法,不能用mockito测试的代码,都是设计有问题的。这种说法是否太武断?Mockito不能测试static,enum,项目里面static全都改成service,enum全都退化成常量。真是呵呵了。而且没人去和arch PK,Arch可能更有大局观,但是他知道的东西不一定跟得上时代。
某种程度上说,所谓的“面向对象”其实是解决了“聪明的码农不多”这个问题。。。而这也是FP唯一无法解决的问题。。。
在java世界里,你勤劳就能写出代码,为了让你一堆的代码有逼格,需要学习一些设计模式,为了改那一堆代码你就需要“重构”,然后你的代码就由一堆代码变成了两堆代码,然后就是企业级的hello world了。
即使有些东西用的很广泛,那未必是正确的用法。比如java中的getter,setter,link,link2 。
—
我个人还是极力推荐jmockit的,jmockit确实很强大,用不好可能走火入魔。但是,我们要拥有核武器,但是承诺不首先使用核武器。仅仅就是给pom多加一个工具嘛,何必那么究竟。
一个stackoverflow上的mock框架比较。