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='URL を入力してください: ', 有効=真, 可視=真, 表示=真] javax.swing.JTextField[名前=null, テキスト='', 有効=真, 可視=真, 表示=真] javax.swing.JButton[名前= null、text='Submit'、enabled=true、visible=true、表示=true] myapp.ui.ContentPanel[name=null] javax.swing.JScrollPane[name=null、enabled=true、visible=true、表示= true] 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[名前=null、値=0、blockIncrement=10、最小=0、最大=270、有効=true、表示=false、表示=false] javax. swing.plaf.metal.MetalScrollButton[name=null、text=''、enabled=true、visible=true、showing=false] javax.swing.plaf.metal.MetalScrollButton[name=null、text=''、enabled=真、可視=真、表示=偽] javax.swing.JScrollPane$ScrollBar[名前=null、値=0、ブロック増分=10、最小=0、最大=381、有効=真、可視=偽、表示=偽] 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= true、表示 = false] myapp.ui.StatusPanel[name = null] javax.swing.JLabel[name = null、text = 'Status: '、enabled = true、visible = true、表示 = true] javax.swing.JLabel [name=null、text=''、enabled=true、visible=true、showing=true]plaf.metal.MetalScrollButton[name=null、text=''、enabled=true、visible=true、showing=false] javax.swing.plaf.metal.MetalScrollButton[name=null、text=''、enabled=true、 visible=true、表示=false] myapp.ui.StatusPanel[name=null] javax.swing.JLabel[name=null、text='Status:'、enabled=true、visible=true、表示=true] javax.swing .JLabel[name=null、text=''、enabled=true、visible=true、表示=true]plaf.metal.MetalScrollButton[name=null、text=''、enabled=true、visible=true、showing=false] javax.swing.plaf.metal.MetalScrollButton[name=null、text=''、enabled=true、 visible=true、表示=false] myapp.ui.StatusPanel[name=null] javax.swing.JLabel[name=null、text='Status:'、enabled=true、visible=true、表示=true] javax.swing .JLabel[name=null、text=''、enabled=true、visible=true、表示=true]表示=真] javax.swing.JLabel[名前=null、テキスト=''、有効=真、可視=真、表示=真]表示=真] javax.swing.JLabel[名前=null、テキスト=''、有効=真、可視=真、表示=真]
org.fest.swing.exception.ComponentLookupException at org.fest.swing.core.BasicComponentFinder.componentNotFound(BasicComponentFinder.java:184) at org.fest.swing.core.BasicComponentFinder.find(BasicComponentFinder.java:169) at org. org.fest.swing.core.BasicComponentFinder.find(BasicComponentFinder.java:158) at org.fest.swing.core.BasicComponentFinder.findByName(BasicComponentFinder.java:136) at 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) で