尝试使用 FEST 测试我的 GUI,但我在尝试访问自定义 JPanel 中包含的组件时遇到问题(TopPanel 扩展 JPanel)。因此,下面的代码在尝试引用作为 MainJFrame 内的字段存在的“topPane”时失败。我在这里做错了什么?
public class StableAppsUITest {
private FrameFixture window;
private JPanelFixture contentFixture;
@Before
public void setUp() {
//Assumes the main class is named "Anagrams" and extends JFrame:
window = new FrameFixture(new MainJFrame("Title"));
window.show();
contentFixture = window.panel("topPanel");
}
@Test
public void shouldEnterAnagramAndReturnTrue() {
// contentFixture.textBox("mUrlInputTextField").enterText("www.google.com");
}
@After
public void tearDown() {
window.cleanUp();
}
}
这是堆栈跟踪,以防万一:
无法使用匹配器 org.fest.swing.core.NameAndTypeMatcher[name='topPanel', type=javax.swing.JPanel, requireShowing=true] 找到组件。
组件层次结构:myapp.ui.MainJFrame[name='frame0', title='myapp', enabled=true, visible=true,showing=true] javax.swing.JRootPane[] javax.swing.JPanel[name='null .glassPane'] javax.swing.JLayeredPane[] javax.swing.JPanel[name='null.contentPane'] myapp.ui.TopPanel[name=null] javax.swing.JLabel[name=null, text='输入网址:',启用=真,可见=真,显示=真] javax.swing.JTextField[名称=空,文本='',启用=真,可见=真,显示=真] javax.swing.JButton[名称=空,文本='提交',启用=真,可见=真,显示=真] myapp.ui.ContentPanel[名称=空] javax.swing.JScrollPane[名称=空,启用=真,可见=真,显示=真] javax.swing.JViewport[,1,1,381x270,layout=javax.swing.ViewportLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=25165832,maximumSize=,minimumSize=,preferredSize=,isViewSizeSet=true,lastPaintPosition=java.awt.Point[x=0,y= 0],scrollUnderway=false] javax.swing.JList[name=null, selectedValues=[], contents=[], selectionMode=MULTIPLE_INTERVAL_SELECTION, enabled=true, visible=true,showing=true] javax.swing.CellRendererPane[, 0,0,0x0,hidden] javax.swing.JScrollPane$ScrollBar[name=null, value=0, blockIncrement=10, minimum=0, maximum=270, enabled=true, visible=false,showing=false] javax. swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true,showing=false] javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=真,可见=真,显示=false] javax.swing.JScrollPane$ScrollBar[name=null, value=0, blockIncrement=10, minimum=0, maximum=381, enabled=true, visible=false,showing=false] javax.swing.plaf。 metal.MetalScrollButton[name=null, text='', enabled=true, visible=true,showing=false] javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=真,显示=假] myapp.ui.StatusPanel[名称=空] javax.swing.JLabel[名称=空,文本='状态:',启用=真,可见=真,显示=真] javax.swing.JLabel [名称=空,文本='',启用=真,可见=真,显示=真]plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true,showing=false] javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true,可见=真,显示=假] myapp.ui.StatusPanel[名称=空] javax.swing.JLabel[名称=空,文本='状态:',启用=真,可见=真,显示=真] javax.swing .JLabel[名称=空,文本='',启用=真,可见=真,显示=真]plaf.metal.MetalScrollButton[name=null, text='', enabled=true, visible=true,showing=false] javax.swing.plaf.metal.MetalScrollButton[name=null, text='', enabled=true,可见=真,显示=假] myapp.ui.StatusPanel[名称=空] javax.swing.JLabel[名称=空,文本='状态:',启用=真,可见=真,显示=真] javax.swing .JLabel[名称=空,文本='',启用=真,可见=真,显示=真]显示=真] javax.swing.JLabel [名称=空,文本='',启用=真,可见=真,显示=真]显示=真] javax.swing.JLabel [名称=空,文本='',启用=真,可见=真,显示=真]
org.fest.swing.exception.ComponentLookupException 在 org.fest.swing.core.BasicComponentFinder.componentNotFound(BasicComponentFinder.java:184) 在 org.fest.swing.core.BasicComponentFinder.find(BasicComponentFinder.java:169) 在 org. fest.swing.core.BasicComponentFinder.find(BasicComponentFinder.java:158) 在 org.fest.swing.core.BasicComponentFinder.findByName(BasicComponentFinder.java:136) 在 org.fest.swing.fixture.ContainerFixture.findByName(ContainerFixture. java:822) 在 org.fest.swing.fixture.ContainerFixture.panel(ContainerFixture.java:406) 在 myapp.ui.myappUITest.setUp(myappUITest.java:32)