[*]关键词:mock private的域或方法 invoke
[*]源类清单<br> 参考<一>的例子,now方法是私有的
[/list]
[*]小结<br>mock 某个类的私有方法,用invoke(mock的类或实例,方法名,方法的参数列表)
[*]源类清单<br> 参考<一>的例子,now方法是私有的
/** * 演示mock private的域或方法 */public class dateutil { ...... private int count; public int getcount(){ return this.count; } private static final date now() { return new date(); } ......}[list][*] 单元测试类清单[/list]
/** * 演示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的类或实例,方法名,方法的参数列表)
本文演示了如何在单元测试中模拟某个类的私有方法和属性,通过使用`invoke`函数来实现对私有成员的测试。
194

被折叠的 条评论
为什么被折叠?



