JMockit使用实例<二>mock private的域或方法

   
  • 关键词:mock private的域或方法 invoke
  • 源类清单<br>    参考<一>的例子,now方法是私有的
  • /** * 演示mock private的域或方法 */public class dateutil {    ......    private int count;    public int getcount(){      return this.count;    }    private static final date now() {        return new date();    }    ......}
    •  单元测试类清单
    /** * 演示mock private的域或方法 */public class dateutiltest {    /**     * mock某个类私有方法     */    @test    public void testgetcurrentdatestr() {        //dateutil.class,要mock的类        new expectations(dateutil.class) {            {              //执行dateutil的now方法                invoke(dateutil.class,"now");              //期望方法返回的结果                result = mockdate();            }        };        assert.assertequals("2010-07-22 15:52:55", dateutil.getcurrentdatestr());    }    /**    * mock 某个类的私有属性    */    @test    public void testprivatefiled() {        final dateutil dateutil =new dateutil();        new expectations(dateutil){            {                this.setfield(dateutil, "count", 2);            }        };        assert.assertequals(2, dateutil.getcount());    }
     
  • 小结<br>mock 某个类的私有方法,用invoke(mock的类或实例,方法名,方法的参数列表)
  •  

    你可能感兴趣的:(java,工作)