Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    25

    Come catturare pre/post-condizioni con la JUnit

    Come da titolo vorrei sapere come fare a catturare una pre/post-condizione che fallisce nel mio codice, e catturarlo nella JUnit; in modo da fare dei casi di test in cui le asserzioni del mio codice falliscano però vengano "intercettate" dalla JUnit.

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Se ho capito bene quello che chiedi, puoi usare Assume.

    Ad esempio, se hai un test che funziona solo su Windows e uno che funziona solo su Linux puoi fare una cosa del genere:

    codice:
    @Test
    public void test_WIN() 
    {
        Assume.assumeTrue(OS.isWindows());
    
        // codice specifico per Windows
    }
    
    @Test
    public void test_LINUX() 
    {
        Assume.assumeTrue(OS.isLinux());
    
        // codice specifico per Linux
    }
    Se l'assunzione è falsa il test verrà considerato "passato con successo".

    Se non è quello che chiedi, spiegati meglio
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    25
    Grazie della risposta però penso di non essermi spiegato bene...
    ti faccio un esempio...
    Ho una classe che risolve sistemi di equazioni e impongo come precondizione che:
    assert Math.abs(a1) > 10E-3;
    assert Math.abs(b1) > 10E-3;
    assert Math.abs(c1) > 10E-3;
    .
    .
    .

    con a1,b1,c1 intendo i termini dell'equazione a1x + b1y = c1 (giusto per farti capire)

    allora nella Junit se creo un'oggetto di questa classe che viola l'asserzione mi lancia:

    java.lang.AssertionError

    Giustamente mi fallisce il test perchè mi fallisce l'asserzione presente nella classe che risolve l'equazione... però se io volessi dire nel mio caso ti test di aspettarmi l' "AssertionError" in modo da non fallire il test come devo fare?

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da abbobba
    Giustamente mi fallisce il test perchè mi fallisce l'asserzione presente nella classe che risolve l'equazione... però se io volessi dire nel mio caso ti test di aspettarmi l' "AssertionError" in modo da non fallire il test come devo fare?
    Ok, ora è più chiaro!

    Puoi usare expected:

    codice:
    @Test(expected = AssertionError.class)
    public void test() throws Exception
    {
        ... tuo codice che lancia l'eccezione
    }
    Il test verrà considerato "passato" se viene lanciata l'eccezione indicata (o una sua sottoclasse)
    http://junit.sourceforge.net/javadoc...unit/Test.html

    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    25
    ok, grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.