命名摆动组件的策略

时间:2010-09-02 14:42:19

标签: java swing automated-tests qf-test

在我们的Swing应用程序中,我们使用QA(Qf-Test)中的自动化测试工具,在命名swing组件时效果更好。 (调用Component.setName)。虽然他们的自动名称分配工作得相当好,但我们正在将SwingX组件引入项目中,这会导致该工具出现一些问题。

屏幕上有很多潜在的组件(典型的商业应用数据输入屏幕,但其中很多 - 应用程序处于ERP的复杂程度),有哪些选项可用于命名摇摆组件合理不引人注目的方式?

3 个答案:

答案 0 :(得分:1)

我通常将字段存储在JPanel的属性中的JPanel中,如下所示:

private JLabel firstNameLabel;
private JTextField firstNameTextField;

在实例化并布置这些组件的例程结束时,您可以运行使用java.lang.reflect循环遍历面板的每个属性的例程。如果属性来自类Component,则可以使用属性的名称在其上调用setName。例如,它最终会调用:

this.firstNameLabel.setName("firstNameLabel");
this.firstNameTextField.setName("firstNameTextField");

...除了通过java.lang.reflect

您还可以让例程检查变量的颠簸案例名称,并将其替换为带空格的标准案例。这将使它们更具可读性。

这种方法将确保无论您添加到面板的哪些组件,它们都将获得友好的名称。

答案 1 :(得分:1)

我通常会为所有组件使用复合名称;名称建立在父名称(例如JDialog)和字段名称(通过反射获得)之上。这使得组件名称在大多数情况下都是唯一的(根据您如何命名父母以及如何使用它们,您仍然可能会发生冲突,例如,如果您打开多个JInternalFrame且所有名称都相同...)

我在Guts-GUI中实现了通用命名策略(就是这样)。

顺便说一下,组件命名不仅对UI测试很有意义,而且对于资源注入策略(组件的i18n)也很有用。

答案 2 :(得分:0)

您是如何构建界面的? JFormDesigner和大多数其他编辑器都允许自动设置组件的名称,这非常方便。大多数时候,我根本不需要考虑组件名称。只有例外是未使用JFormDesigner放置的组件。