查看完整版本: 请教VcTester问题,急!!

chinarenren 2006-11-16 00:13

请教VcTester问题,急!!

[color=#000000][size=5][font=宋体]我在测试一个函数[/font]A[font=宋体]的时候要对被调函数[/font]B[font=宋体]进行打桩,[/font]A[font=宋体]函数中调用了好几次[/font]B[font=宋体]函数,又不想每次调用都打桩,只想设置前几次打桩,而后不打桩,这样是否可以?如何[/font]­[font=宋体]实现?有知道的帮忙回复一下,急!!急!![/font][/size][/color]

tony.ak 2006-11-16 00:21

[size=4]VcTester已经具有你说的功能,具体解决方法如下:
[color=#000000][font=宋体]  脚本桩中使用[/font]return[font=宋体]语句返回,属于正常打桩,让脚本函数替代[/font]C[font=宋体]函数,若脚本桩中未使用[/font]return[font=宋体]语句,脚本桩函数是插入运行的,被打桩[/font]C[font=宋体]函数继续得到运行。利用此特性可解决这个问题,参见如下样例:[/font][/color]
[color=#000000][/color]
[color=#000000][font=宋体][size=9pt]setContainVar(vd,'gCount',0); # [/size][size=9pt]定义一个全局计数器[/size][/font][/color][/size][color=#000000][font=宋体]
[size=4][size=9pt]func ObjCompare_stub(vc): [/size]
[size=9pt]  vd.gCount = vd.gCount + 1; [/size]
[size=9pt]  if vd.gCount > 3: [/size]
[size=9pt]    # do nothing and not return[/size]
[size=9pt]    # It is same to call original function[/size]
[size=9pt]  end else:[/size]
[size=9pt]    # Execute script stub function[/size]
[size=9pt]    print 'in stub';[/size]
[size=9pt]    return 0;[/size]
[size=9pt]  end;[/size]
[size=9pt]end;[/size][/size][/font][/color][color=#000000][font=宋体][size=10]
[size=4][size=9pt]vd.ObjCompare.stub(ObjCompare_stub); [/size]
[size=9pt]vd.BubbleSort(vd.gDataList,8); [/size]
[size=9pt]vd.ObjCompare.stub(nil); [/size]
[/size]

[/size][/font][/color]

[[i] 本帖最后由 tony.ak 于 2006-11-16 00:22 编辑 [/i]]
页: [1]
查看完整版本: 请教VcTester问题,急!!