JUBULA 扩展功能

JUBULA是一个自动化测试功能,它能够识别swing的绝大部分控件,如JButton,JTextFiled,JTable,JTree等等。但是对于特殊情况,如JTable使用了CellRender渲染器,它就不能识别了。为此,他们提供了两种方式来给用户扩展实现。1) TableCellRenderer renderer = m_table.getCellRenderer(
                                row, column);
     Component c = renderer.getTableCellRendererComponent(
                                m_table, value, selected, true, row,
                                column);
返回的component对象,实现getTestableText 或者 getText 方法。

2) 第一种情况是比较简单的情况,更为复杂的是TableCellRenderer 是单对象注入,而渲染器的getTableCellRendererComponent又返回其本身,这种情况下,就必须通过适配器工厂(IAdapterFactory)来获取渲染适配器(ITextComponent),以获取渲染器的Text。IAdapterFactory和ITextComponent是JUBULA提供的两个扩展接口,在它的common(org.eclipse.jubula.rc.common_2.3.0.201404150900.jar)包里。具体实现类放在jubula.rc.swing包里。具体实现时,根据笔者经验,建议将原来的SwingAdapterFactory改写,添加对新控件的支持,然后换个名字再放到jubula.rc.swing包的相同位置(框架是按照固定路径找这个AdapterFactory的)。

扩展完Table渲染器,应该来说jubula基本可以抓取所有的swing组件了。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: