2014-12-27 2 views
4

Я пытаюсь запустить простой тест с FEST, и он не работает. Вот мое приложение Свинг:FEST: Не удается найти компонент с помощью matcher org.fest.swing.core.NameMatcher

public final class App extends JFrame { 
    public App() { 
    super(); 
    JButton button = new JButton("start!"); 
    button.setName("start"); 
    this.getContentPane().add(button); 
    } 
} 

Это испытание (я использую JUnit 4):

public final class AppTest { 
    @Test 
    public void test() { 
    FrameFixture frame = new FrameFixture(new App()); 
    frame.button("start").click(); 
    frame.cleanUp(); 
    } 
} 

Это, как он терпит неудачу:

org.fest.swing.exception.ComponentLookupException: Unable to find 
component using matcher org.fest.swing.core.NameMatcher[name='start', 
type=javax.swing.JButton, requireShowing=true]. 

Component hierarchy: 
com.sigzig.App[name='frame0', title='', enabled=true, visible=false, showing=false] 
    javax.swing.JRootPane[] 
    javax.swing.JPanel[name='null.glassPane'] 
    javax.swing.JLayeredPane[] 
     javax.swing.JPanel[name='null.contentPane'] 
     javax.swing.JButton[name='start', text='start!', enabled=true, visible=true, showing=false] 

    at org.fest.swing.core.BasicComponentFinder.componentNotFound(BasicComponentFinder.java:271) 
    at org.fest.swing.core.BasicComponentFinder.find(BasicComponentFinder.java:260) 
    at org.fest.swing.core.BasicComponentFinder.find(BasicComponentFinder.java:254) 
    at org.fest.swing.core.BasicComponentFinder.findByName(BasicComponentFinder.java:191) 
    at org.fest.swing.fixture.ContainerFixture.findByName(ContainerFixture.java:527) 
    at org.fest.swing.fixture.ContainerFixture.button(ContainerFixture.java:124) 
    ... 

Это зависимость Я использую:

<dependency> 
    <groupId>org.easytesting</groupId> 
    <artifactId>fest-swing</artifactId> 
    <version>1.2.1</version> 
    <scope>test</scope> 
</dependency> 

Что случилось?

ответ

2

Просто добавьте в ваше приложение конструктора:

this.setVisible(true); 
Смежные вопросы