MouMock (哞~ mock) 是我21年开发的一个Spring环境下的mock规约框架. 这个工具在规约和整理方向的意义比较大, 用于解决单测mock实例和mock数据混乱的问题
从上手使用例子开始看, 实际上推给同事也是这么推的
假如说我们现在有一个类DataApi
, 是一个数据中台的api, 线上环境是需要rpc调用的, 但线下单测环境就需要mock, 这时候用MouMock的写法是这样的
1 | // 业务代码中使用DataAPi的类 |
1 | // 单测的代码包里, 弄这样一个MouMock的类 |
1 | // 实际的单测的代码 |
这样写有几个好处:
- 对于每个类, 只能有一个属于它的MouMock的MockBeanFactory类, 并且这个MouMock创建出来的mockBean是优先于其他所有的mockBean的, 强制使用MouMock的MockBean, 使之前散落到各处的 造mock数据的代码, 集中在一个文件里, 代码结构更加规整
- 在写每个单测方法前, 要调用需要使用到的MockBeanFactory的想用的mock方法, 消灭 “诶我这个mock的数据不知道是在哪造出来的” 的情况
这个工具不足的地方:
- 目前限制了只能是Mockito的mock, 无法用其他mock框架
- MockBeanFactory这个名字取的不好…
- 公司团队内部使用, 没有开源…
上面两点好处在同事之间获得大片好评的, 很大程度上解决了先前mock混乱的问题