Fest Swing NullPointer sur mes éléments
Bonjour à tous,
je me lance dans le test d'interface grapique avec la librairie Fest-Swing.
Pour débuter, j'ai voulu réaliser un petit test tout simple : une fenêtre contenant un bouton. Quand l'utilisateur clique sur le bouton, un label affiche "Click".
Voici le code de ma fenêtre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public class Fenetre extends JFrame
{
private JButton btn;
private Container panel_haut;
private JLabel result1;
private JPanel panel_bas;
public Fenetre()
{
this.setSize(new Dimension(600,200));
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
...
result1 = new JLabel();
result1.setName("result1");
result1.setHorizontalAlignment(SwingConstants.CENTER);
result1.setBounds(0, 0, 300, 30);
panel_bas.add(result1);
btn = new JButton("Click me!");
btn.setName("clickButton");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0)
{
result1.setText("Click");
}
});
btn.setBounds(259, 79, 112, 53);
panel_haut.add(btn);
}
} |
Ensuite, j'ai écrit le test suivant (en me basant sur http://www.javaworld.com/javaworld/j...st.html?page=2) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
import org.fest.swing.fixture.FrameFixture;
import org.junit.Test;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
public class FenetreTest
{
private FrameFixture frame;
@BeforeMethod
public void setUp()
{
frame = new FrameFixture(new Fenetre());
frame.show();
}
@Test
public void shouldShowClickIfUserClickButton()
{
frame.button("clickButton").click();
frame.label("result1").requireText("Click");
}
@AfterMethod
public void tearDown()
{
frame.cleanUp();
}
} |
Le problème est que lorsque j'exécute mon test, il me lance un java.lang.NullPointerException sur la ligne frame.button("clickButton").click();
Je supose donc qu'il ne trouve pas mon bouton. Pourtant j'ai fait correspondre le nom avec celui que l'on trouve dans Fenetre.
Quelqu'un aurait-il une idée?
Merci beaucoup