我想使用 FEST 来测试 Swing 组件是否不可见。
我尝试使用org.fest.swing.fixture.FrameFixture
方法panel(“foo”)
但失败了,因为它需要requireShowing=true.
什么是使用 FEST 查找面板的惯用方法,无论它现在是否可见?
Assert.assertFalse(panel.getFooPanel().isVisible()); // works ok
myFrameFixture.panel(“foo”).requireNotVisible(); // fails
第二行给出了这个......
javax.swing.JPanel[name='foo']
org.fest.swing.exception.ComponentLookupException: Unable to find component
using matcher
org.fest.swing.core.NameMatcher[name='foo, type=javax.swing.JPanel, requireShowing=true].
编辑 :
我使用 Jay Fichadia 建议的模式将类似的测试与 JComboBox 捆绑在一起,但它似乎仍然需要在我调用之前显示该项目,.requireNotVisible()
例如new JComboBoxFixture(frame.robot,"grid_combo");
单独尝试(没有实际的 requireNotVisible() 检查)给出......
Caused an ERROR
Unable to find component using matcher org.fest.swing.core.NameMatcher[name='grid_combo', type=javax.swing.JComboBox, requireShowing=true].
尽管我们在组件层次结构中有:
javax.swing.JComboBox[name='grid_combo', selectedItem='A', contents=['A', 'B'], editable=false, enabled=false, visible=false, showing=false]