首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

jmockit中的诡谲陷阱

2012-09-03 
jmockit中的诡异陷阱以前用过一些Mock框架;使用jmockit时,我以为mock框架都差不多,jmockit也不例外。吃了一

jmockit中的诡异陷阱
以前用过一些Mock框架;使用jmockit时,我以为mock框架都差不多,jmockit也不例外。吃了一些苦头才发现,jmockit是多么的与众不同(中性词).

在我看来,jmockit作者的思维方式是扭曲的,jmockit的用法也是诡异的。要想充分利用jmockit的强大功能,你必须容忍它与众不同的地方。本文给出一些最近收集到的诡异点:


Mock行为中的诡异点

看起来只Mock了一个对象,实际上Mock了整个类

 @Test public void test_Not_Invoked_Method(){  Service service = new Service();  service.setCache(cache);  service.setDao(dao);  final SimpleBean bean = new SimpleBean();    new Expectations(){{   mockedList.someMethod();  //会出错,因为service.saveAndCache(bean)时不需要调任何MockedList的方法    }};    service.saveAndCache(bean); }  @Test public void test_NoCoverage(){  Service service = new Service();  service.setCache(cache);  service.setDao(dao);    new Expectations(){{      //测试可以通过,虽然这里没有录制任何被mock类的方法     }};   service.saveAndCache(new SimpleBean()); }  @Test public void test_CoverOnlyOne(){  Service service = new Service();  service.setCache(cache);  service.setDao(dao);  final SimpleBean bean = new SimpleBean();    new Expectations(){{   //测试可以通过,虽然这里只录制了部分被mock类的方法   dao.save(bean);      }};    service.saveAndCache(bean); }

热点排行