Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problema con Junit

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315

    problema con Junit

    Sto svolgendo un esercizio e volevo provare a testarlo tramite Junit però quando avvio il programma non parte nessun test.

    Queste sono le classi:
    codice:
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    
    public class TestFileSorgente {
    
        @Test
        public static void main(String args[])
        {
            FileSorgente fileSorgente = new FileSorgente("Test.java", TipoFile.JAVA,"public class MyClass { ");
            System.out.println(fileSorgente.getContenuto());
            
            fileSorgente.aggiungiTesto("}");
            System.out.println(fileSorgente.getContenuto());
            
            fileSorgente.aggiungiTesto("// Test aggiunta testo", 23);
            System.out.println(fileSorgente.getContenuto());
            
            fileSorgente.aggiungiTesto("// Test aggiunta testo", -1);
            System.out.println(fileSorgente.getContenuto());
            
        }
    
    }
    codice:
    import java.lang.String;
    
    public class FileSorgente extends File
    {
        private String contenuto;
        
        public FileSorgente(String nome, int tipo, String contenuto)
        {
            super(nome,tipo);
            setContenuto(contenuto);
        }
        
        public void setContenuto(String contenuto)
        {
            this.contenuto = contenuto;
        }
        
        public String getContenuto()
        {
            return contenuto;
        }
    
        public void aggiungiTesto(String testo)
        {
            if (contenuto == null)
            {
                contenuto = "";
            }
            if (testo != null)
            {
                contenuto += testo;
            }
        }
        
        public void aggiungiTesto(String testo, int posizione)
        {
            int length = contenuto.length();
            if (contenuto != null && testo != null && posizione > 0 && posizione < length)
            {
                contenuto = contenuto.substring(0, posizione) + testo + contenuto.substring(posizione);
            }
        }
            
    }
    codice:
    public abstract class File
    {
        private String nome;
        private int tipo;
        
        public File(String nome, int tipo)
        {
            this.nome = nome;
            this.tipo = tipo;
        }
        
        public void setNome(String nome)
        {
            this.nome = nome;
        }
        
        public String getNome()
        {
            return nome;
        }
        
        public void setTipo(int tipo)
        {
            this.tipo = tipo;
        }
        
        public int getTipo()
        {
            return tipo;
        }
    }
    codice:
    public interface TipoFile 
    {
        int JAVA = 1;
        int C_SHARP = 2;
        int C_PLUS_PLUS = 3;
        int C = 4;
    }
    Dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da newutente Visualizza il messaggio
    Dove sbaglio?
    Nel fatto che non ancora compreso minimamente come si usa JUnit.

    https://www.google.it/#q=junit+tutorial
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    Effettivamente ero fuori strada, ora penso di aver capito meglio anche se ho alcune domande da farvi:

    1) non devo utilizzare la classe del main per fare i test, o meglio penso che nessuno me lo vieti però è meglio riservare delle classi proprio a questi test. Dico bene?

    2) se non ho capito male i test JUnit sono un'esecuzione del tutto separata rispetto al main e infatti per eseguirli devo prima aprire il sorgente con la classe di test e poi eseguire il programma, in questo modo parte direttamente il test e non il main. Possiamo dire che i test JUnit in parte sostituiscono l'output su console che ci permette di verificare la correttezza delle operazioni eseguite dai metodi. Giusto?

    3) Ho creato una classe per fare questi test JUnit in questo modo:
    codice:
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    
    public class Junit {
    
        @Test
        public void test() 
        {
            FileSorgente test = new FileSorgente("Test.java", TipoFile.JAVA, "public class Junit { ");
            
            String risultato = test.aggiungiTesto("}");
            assertEquals("public class Junit { }", risultato);
            
            risultato = test.aggiungiTesto("// testo da inserire", 21);
            assertEquals("public class Junit { // testo da inserire}", risultato);
            
            risultato = test.aggiungiTesto("abstract", 7);
            assertEquals("public abstract class Junit { // testo da inserire}", risultato);
            
        }
    
    }
    volutamente gli ultimi due test ho fatto in modo che falliscano però nella finestra JUnit (uso Eclipse) mi viene indicato solo il fallimento del primo test e la riga di codice. Non è possibile indicare anche gli eventuali altri test falliti?
    Ultima modifica di newutente; 16-11-2014 a 19:29

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    JUnit si interrompe al primo fallimento.

    Per fare eseguire lo stesso tutti gli assert puoi usare assertj, usata in un progettino di test qualche mese fa. Non so se JUnit abbia una funzionalità simile, in realtà non ne ho mai avuto bisogno.

    http://joel-costigliola.github.io/as...oft-assertions
    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
    Oct 2014
    Messaggi
    315
    ah ecco, quindi JUnit è normale che debba interrompersi al primo fallimento.

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.