[Testing Java] Problema Powemock
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 8 di 8

Discussione: [Testing Java] Problema Powemock

Cambio titolo
  1. #1
    EX-TER-MI-NA-TE! L'avatar di lord mark 87
    Registrato il
    01-03
    Località
    Legen-wait for it-DARY
    Messaggi
    51.379

    [Testing Java] Problema Powemock

    ciao a tutti, sono in un progetto universitario in cui, risparmiandovi i dettagli, bisogna testare i vari moduli utilizzando easymock o, al limite, powermock.
    Ora, c'è una serie di test che devo realizzare (uso eclipse+JUnit 4+librerie easymock/powermock) che vanno a lanciarmi un NullPointerException in un modulo che non è di mia competenza, su cui quindi non posso intervenire (più nello specifico, lavoro sul VoIP del progetto e l'errore mi viene lanciato nel Core).
    Mi è stato garantito dai "boss" del progetto che l'eccezione è tranquillamente gestibile tramite i metodi del powermock, ma in rete non ho trovato nulla di interessante che riconduca a questo tipo di test.
    Voi sapete come gestire questo tipo di situazioni? E, più in generale, conoscete una guida piuttosto dettagliata sulle librerie Powermock?

  2. #2
    The Hermit
    Ospite
    Come toppa adesso potresti mettere un blocco try/catch intorno alle linee che danno eccezione.

  3. #3
    EX-TER-MI-NA-TE! L'avatar di lord mark 87
    Registrato il
    01-03
    Località
    Legen-wait for it-DARY
    Messaggi
    51.379
    Citazione The Hermit Visualizza Messaggio
    Come toppa adesso potresti mettere un blocco try/catch intorno alle linee che danno eccezione.
    il punto è che il test deve essere superato in maniera positiva, perchè comunque il sorgente funziona (so che tutto ciò va contro il paradigma del testing, ma lunghe vicende ci hanno portato a questa situazione).
    Nel momento in cui catturo l'eccezione, il blocco except/replay/verify del mock mi va a puttane, perchè sul verify si aspetta un qualcosa che non arriverà mai.

    Però mi da un failure al posto di un error, che è già un passettino avanti

  4. #4
    The Hermit
    Ospite
    Uhm non basta fare così:
    Codice:
    try{
       lineaCheVaInErrore();
    } catch(NullPointerException ex)
    {
       bloccoDiCodiceVerify;
    }
    Il problema esistere se la linea che va in errore ha un risultato su cui poi tu fai delle verifiche. Comunque, se una classe dà un exception il codice NON funziona o i parametri in ingresso sono sbagliati, non si scappa. Se un metodo funziona dando un'eccezione, beh quel codice fa schifo .

  5. #5
    EX-TER-MI-NA-TE! L'avatar di lord mark 87
    Registrato il
    01-03
    Località
    Legen-wait for it-DARY
    Messaggi
    51.379
    Citazione The Hermit Visualizza Messaggio
    Uhm non basta fare così:
    Codice:
    try{
       lineaCheVaInErrore();
    } catch(NullPointerException ex)
    {
       bloccoDiCodiceVerify;
    }
    Il problema esistere se la linea che va in errore ha un risultato su cui poi tu fai delle verifiche. Comunque, se una classe dà un exception il codice NON funziona o i parametri in ingresso sono sbagliati, non si scappa. Se un metodo funziona dando un'eccezione, beh quel codice fa schifo .
    il punto è che il progetto principale è ancora molto lontano dall'essere completato, rivisto e pulito.
    Non so darti i dettagli perchè la questione riguarda altri moduli che non sono di mia competenza, ma è un problema che emerge solo realizzando il test su tutti i metodi che riguardano quello specifico particolare, probabilmente per un bug sull'attuale versione del Core (il mio capo gruppo infatti provò altri miei test caricando il Core vecchio e passavano senza problemi).
    Mi dispiace non poter andare troppo nel dettaglio e rimanere così fumoso, ma dovrei copiarvi tonnellate di codice e classi (la maggior parte nemmeno commentati ) e non la finirei più.
    Più che altro, siccome mi è stato detto che con Powermock si può gestire questo tipo di situazioni, volevo sapere se, appunto, era possibile "manipolare" a proprio piacimento le eccezioni con queste librerie

  6. #6
    The Hermit
    Ospite
    Ok, tutto chiaro.

    Ricordo che in JUnit c'è la possibilità di dire che ci si aspetta un'eccezione. Ecco: link. tra l'altro la sintassi
    Codice:
    @Test (expected=SomeException.class)
    è specifica di JUnit4, dovrebbe andare bene per te.

  7. #7
    EX-TER-MI-NA-TE! L'avatar di lord mark 87
    Registrato il
    01-03
    Località
    Legen-wait for it-DARY
    Messaggi
    51.379
    a funzionare funziona, grazie

    ora devo solo sperare che i miei capi gruppo approvino la soluzione

    EDIT: negativo. Il test così passa, ma SOLO se effettivamente l'eccezione si verifica (cosa che non dovrebbe essere). In altre versioni del core questo test darebbe errore, quindi niente, ho bisogno di capire come gestire le eccezioni con il powermock
    Ultima modifica di lord mark 87; 5-03-2010 alle 00:27:31

  8. #8
    The Hermit
    Ospite
    Uhm, puoi fare 2 test: uno che si aspetta l'eccezione e uno no, ed inserirli nella suite a seconda della versione dell'applicazione da testare. Mi pare corretto che versioni dell'applicazione di test necessitino di suite di test differenti.

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •