关键词: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的类或实例,方法名,方法的参数列表)