GUI测试应该以默认外观运行吗?

时间:2013-05-14 09:06:55

标签: java swing testing look-and-feel fest

我正在开发一个具有自定义外观的应用程序。对于GUI测试,我使用的是FEST-Swing。 目前,GUI测试使用默认的Java外观运行。因此,有些测试失败,但是我应该将其视为GUI中的错误,还是使用我的自定义外观进行测试?

稍后编辑:

谢谢Andrew Tompson的快速回答。但我认为这个问题仍然存在,因为流程布局的工作方式。 这是一个发生了什么的模型:

enter image description here

标准LAF使用的字体比我使用的字体大,这会导致其中一个按钮退出布局。我不能使用pack(),因为该容器有一个大小要求。如果您没有在该示例中调用frame.pack(),我认为您会遇到同样的问题。

2 个答案:

答案 0 :(得分:5)

  

某些按钮太大而且无法在窗口中呈现..我应该认为这是GUI中的错误..

是。好像当前的GUI非常脆弱。有关适用于任何 PLAF的GUI,请参阅Nested Layout Example

答案 1 :(得分:1)

您应该使用自定义外观进行测试!它本身并不是GUI中的错误。

  

标准LAF使用的字体比我使用的字体大,而且这个   导致其中一个按钮退出布局。我不能用   pack(),因为该容器有一个大小要求。如果你   在那个例子中没有调用frame.pack(),我想你会有   同样的问题。

您对容器有尺寸要求。这意味着使用标准LAF,没有LayoutManager可以计算容器中组件的任何排列,因此它们都适合标准的LAF,因为你指出它们太大了。这意味着你不能有标准的LAF和尺寸要求。

只要您使用您的自定义LAF并在所有支持的操作系统上使用此自定义LAF进行测试,并且没有测试失败,一切都会正常。因此,在执行测试之前,只需更改测试并切换到自定义LAF。

如果您想在标准LAF中运行应用程序,则必须放宽大小要求,直到使用功能强大的LayoutManager正确显示所有内容。例如,使用MigLayout,您可以方便地设置所有这些大小要求,最后仍然在JFrame上使用pack()。

编辑:我同意Andrew的观点,你应该批判性地审查对尺寸要求的需求。在许多情况下,这些要求并不是真正需要的,丢弃它们可以大大减少布局中的“失败”。例如,您可以只指定容器的最小大小。