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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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