IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tests et Performance Java Discussion :

Fest Swing NullPointer sur mes éléments


Sujet :

Tests et Performance Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 94
    Points : 53
    Points
    53
    Par défaut 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 : 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

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 94
    Points : 53
    Points
    53
    Par défaut
    Je viens de trouver la raison...

    Mon test ne passait pas dans la méthode setUp().
    L'annotation @BeforeMethod ne fonctionne pas apparament alors.

    En la remplacant par @Before, mon test ne me donne plus d'erreur.

    Cependant, il echoue en me disant que result1 est vide.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Tu utilisais des annotations TestNG dans un test JUnit.
    C'est pour ça que les annotations ne fonctionnent pas.


    As-tu vérifié (Debugger ou affichage) que tu passes bien dans le actionPerformed ?
    Tes panels haut et bas sont ils bien ajoutés à la fenêtre ?

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 94
    Points : 53
    Points
    53
    Par défaut
    Merci pour l'explication.

    Je viens de vérifier et mon test ne passe effectivement pas par le actionPerformed. Je ne comprends pas car la simulation du click devrait l'y faire passer non?

    Mes panels sont bien affichés (j'ai rajouté un label pour le voir) mais je ne vois pas mon bouton lors de l'exécution du test...

Discussions similaires

  1. Application CSS ui-lightness sur mes éléments
    Par Pelote2012 dans le forum jQuery
    Réponses: 7
    Dernier message: 10/04/2013, 09h35
  2. [Swing] La taille et la psoition de mes éléments
    Par YuGiOhJCJ dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 20/02/2007, 16h07
  3. Réponses: 3
    Dernier message: 12/09/2006, 16h31
  4. [VB6] COMBO: se positionner sur un élément
    Par taurus dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 18/10/2005, 11h26
  5. Sort sur un élément distinct
    Par Martin lalande dans le forum Langage
    Réponses: 1
    Dernier message: 19/09/2005, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo