使用org.fest.swing.fixture.FrameFixture :: panel()发送Swing面板,它需要面板显示?
我想用FEST来测试一个Swing组件是不可见的。使用org.fest.swing.fixture.FrameFixture :: panel()发送Swing面板,它需要面板显示?
我尝试使用org.fest.swing.fixture.FrameFixture
方法panel(“foo”)
但由于它需要requireShowing=true.
什么用FEST惯用的方法来找到一个面板irregardless如果它现在是可见的失败?
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].
编辑:
我系着的JComboBox类似的测试,使用 周杰伦Fichadia建议的模式,但它在我调用.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]
你尝试使用new JPanelFixture(robot,"foo").requireNotVisible()
;
没有这种方法@ jay-fichadia运气。编辑的问题说。 – k1eran 2015-05-19 09:37:34
你如何获取FrameFixture对象? 另外,您的UI组件是否启用?我的意思是在你的UI代码中你禁用了它们或什么? – 2015-05-19 11:13:32
您是否将面板添加到框架中?并称setVisible(false)? – keuleJ 2015-05-19 05:42:55
@keuleJ对两者都是。用更多信息更新了问题。 – k1eran 2015-05-19 09:36:46
而你做panel.setName(“foo”)?你尝试过使用调试器吗? – keuleJ 2015-05-19 11:54:03