TP7 question 2 - test en échec

Programmation Avancée

Modérateur : douinj

castr_ju
Messages : 11
Inscription : 10 oct. 2020 13:59

TP7 question 2 - test en échec

Message par castr_ju » 11 déc. 2020 8:25

Bonjour,

Concernant la question 2 du TP7, j'ai fait un première soumission à JNEWS qui m'a renvoyé les échecs aux tests suivants:
1) test_lierPropertyChangeSupportEtPropertyChangeListener(question2): lier PropertyChangeSupport et PropertyChangeListener leve une exception ???
2) test_lierObservableNullEtNonObserver(question2): NoSuchElementException est attendu ??? (null)
3) test_delierJButtonEtNonMouseListener(question2): NoSuchElementException est attendue ??? (null)
4) test_lierObservableEtObserverNull(question2): NoSuchElementException est attendu ??? (null)
5) test_lierObservableEtNonObserver(question2): NoSuchElementException est attendu ??? (null)
6) test_lierCanvasEtActionListener(question2): NoSuchElementException est attendue ???

J'ai modifié mon code et écrit les tests suivants qui, selon ma compréhension, correspondraient aux tests en échec:

Code : Tout sélectionner

    // 1) test_lierPropertyChangeSupportEtPropertyChangeListener(question2): lier PropertyChangeSupport et PropertyChangeListener leve une exception ??? 
    public void test_lierPropertyChangeSupportEtPropertyChangeListener(){
        try{
            JButton jb = new JButton();
            java.beans.PropertyChangeSupport pcs = new java.beans.PropertyChangeSupport(new Object());
            java.beans.PropertyChangeListener pcl = new java.beans.PropertyChangeListener(){
                    public void propertyChange(java.beans.PropertyChangeEvent e) {
                    }
                };
            question2.ParIntrospection.lierSourceEtListener(pcs, pcl);
            fail("exception should have been triggered");

        }catch(Exception e){
            assertTrue(e.getClass().equals(question1.NoSuchElementException.class));
        }
    }

    // 2) test_lierObservableNullEtNonObserver(question2): NoSuchElementException est attendu ??? (null) 
    public void test_lierObservableNullEtNonObserver() throws Exception {
        try{
            Entier e = null;
            ParIntrospection.lierObservableEtObserver( e, new Object()
            );
            fail("exception should have been triggered");

            e.initialiser(3);
        }catch(Exception e){
            assertTrue(e.getClass().equals(question1.NoSuchElementException.class));
        }
    }

    // 3) test_delierJButtonEtNonMouseListener(question2): NoSuchElementException est attendue ??? (null) 
    public void test_delierJButtonEtNonMouseListener() throws Exception {
        try{
            JButton jb = new JButton();
            ActionListener obs = new ActionListener(){
                    public void actionPerformed(ActionEvent ae){
                    }
                };
            question2.ParIntrospection.lierSourceEtListener(jb, obs);
            question2.ParIntrospection.delierSourceEtListener(jb, new Object());
            fail("exception should have been triggered");
        }catch(Exception e){
            assertTrue(e.getClass().equals(question1.NoSuchElementException.class));
        }
    }

    // 4) test_lierObservableEtObserverNull(question2): NoSuchElementException est attendu ??? (null) 
    public void test_lierObservableEtObserverNull() throws Exception {
        try{
            Entier e = new Entier(1);
            ParIntrospection.lierObservableEtObserver( e, null
            );
            fail("exception should have been triggered");
            e.initialiser(3);
        }catch(Exception e){
            assertTrue(e.getClass().equals(question1.NoSuchElementException.class));
        }
    }

    // 5) test_lierObservableEtNonObserver(question2): NoSuchElementException est attendu ??? (null) 
    public void test_lierObservableEtNonObserver() throws Exception {
        try{
            Entier e = new Entier(1);
            ParIntrospection.lierObservableEtObserver( e, new Object()
            );
            fail("exception should have been triggered");
            e.initialiser(3);
        }catch(Exception e){
            assertTrue(e.getClass().equals(question1.NoSuchElementException.class));
        }
    }

    // 6) test_lierCanvasEtActionListener(question2): NoSuchElementException est attendue ???
    public void test_lierCanvasEtActionListener() throws Exception {
        try{
            java.awt.Canvas canvas = new java.awt.Canvas();
            ActionListener obs = new ActionListener(){
                    public void actionPerformed(ActionEvent ae){
                    }
                };
            question2.ParIntrospection.lierSourceEtListener(canvas, obs);
            fail("exception should have been triggered");
        }catch(Exception e){
            assertTrue(e.getClass().equals(question1.NoSuchElementException.class));
        }
    }


Tous ces tests fonctionnent avec mon code, mais JNEWS renvoie toujours les 6 mêmes échecs suite à ma seconde soumission (d'habitude j'arrive au moins à en régler une partie).

Cordialement,

bord_a
Messages : 9
Inscription : 24 nov. 2020 11:55

Re: TP7 question 2 - test en échec

Message par bord_a » 11 déc. 2020 12:41

Bonjour,

Je pense que les erreurs de 2) à 6) peuvent être retournées notamment pour ces cas possibles :

- Dans tes fonctions lierSourceEtListener & lierObservableEtObserver, il serait nécessaire que la signature contienne un
"throws NoSuchElementException"
- De même, dans tes fonctions, si tu testes la possibilité d'effectivement lier une source et un listener (ou un observable et un observer) avec un if, le else devrait propager une exception type "NoSuchElementException"

Cordialement,

Répondre