问题
我正在使用 Fitnesse 来运行一些自动化测试。有一个名为 TableTable 的类,如果对其进行增强,我可以做一些很酷的事情。我需要做的是改变方法appendInstructions()
这个类的。
由于 Fitnesse 显式查找 TableTable 类,因此我无法简单地使用所需的增强功能创建 TableTable 的子类 - 我无法让 Fitnesse 查找并使用我的自定义子类。
我目前的解决方案
我采用的临时解决方案是我借用了TableTable的源代码,将其添加到我的源代码树中,与fitnesse的jar中的包位于同一包下,并更改了其代码以满足我的需要。我的代码的类文件出现在类路径中 Fitnesse 的 jar 之前,因此我的更改会被采纳。
我正在尝试做什么
我不想完全隐藏 Fitnesse 的 jar 中的 TableTable 类,而是想在运行时重写该类的一个方法。是否有代码生成库(如 cglib)帮助我在运行时重写该类并帮助我实现这一目标?
根据您需要更改的范围,您也许可以使用Java助手 http://www.javassist.org to 修改相关方法的主体 http://www.csg.is.titech.ac.jp/~chiba/javassist/tutorial/tutorial2.html#alter。有一个关于使用 Javassist 拦截/替换方法的教程here http://www.ibm.com/developerworks/java/library/j-dyn0916/index.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)