追求代码质量: 使用 TestNG-Abbot 实现自动化 GUI 测试[3] 软件测试
在清单 1 中,我创建了一个 TestNG 测试(实际上并没有对其做任何测试),该测试在 fixture 中使用 TestNG-Abbot 的 AbbotFixture 对象来存放 Word Finder GUI 的实例。
清单 1. 使用 AbbotFixture 对象定义 WordFindGUITest
public class WordFindGUITest {
private AbbotFixture fixture;
@BeforeMethod
private void initializeGUI() {
fixture = new AbbotFixture();
fixture.showWindow(new WordFind(), new Dimension(269, 184));
}
@AfterMethod
public void tearDownGUI() {
fixture.cleanUp();
}
}
由于 Word Finder GUI 的用户可见的行为会影响 图 2 所示的三个组件,需要通过编程对其进行调整,以确保工作能正常进行。比如,验证 图 3 演示的良好的场景,需要执行下面三个步骤:
获得对 JTextField 的引用并向其添加一些文本。
获得 JButton 的句柄并单击它。
获得对 JLabel 组件的引用并检验是否显示了正确的释义。
检验良好的场景
使用 TestNG-Abbot,可以通过这三个方便的 fixture 类型执行上面所属的三个步骤:TextComponentFixture 用于 JTextField;ButtonFixture 用于 Find Word 按钮;LabelFixture 用来验证 JLabel 中特定的文本。