The Open Enterprise Foundation

限制

目前HiMock.verify()只验证我们在mocker中定义的方法是否都被执行,如果有验证调用顺序,次数等等的要求,我觉得用TDD书中介绍的log方法就可以了,也就是说,要验证什么你就发挥自己的想象力在mocker中完成。(当然,如果哪位哥们有更好的主意请告诉我们)

另外,除了mock interface外,还可以mock 普通的类,不过有一些限制:

  • 不能mock inner class
  • class需要一个缺省的无参构造器(这可能是暂时的,考虑效仿easymock的方式提供有参构造)

哦,对了,mocker(伪实现对象)也有一些限制,目前mocker不能进行继承复用,甚至连其根类的Object的方法也不能复用。(目前我还不知道这样做究竟好不好,哪位哥们给个答案。)

下面的操作是被认为无效的,因为在mock中没有定义toString(),它不继承超类的方法。

Subscriber mockSubscriber = (Subscriber)hiMock.mock(Subscriber.class,new SubscibeMocker());
mockSubscriber.toString();//Object的方法,对不起,这里会抛出NotImplementedMethodException
		

所以,制作mocker的时候,不要考虑复用为妙 :)

祝我们都好运...