Esempio Junit con eclipse

di centurione_agrippa il
6 risposte
Ciao ragazzi,qualcuno mi potrebbe mandare qualche esempio semplice per farmi capire come funziona junit? Ho provato con il calcolo del fattoriale ma mi da sempre il failures nonostante vada a correggere:

public class classe_fattor {
public static int fattoriale(int n){
int fatt;
int i;
fatt = 1;
for(i=1;i<n;i++){
fatt *= i;
}
return fatt;
}

}

classe test

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;


public class classe_fattorTest {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
}

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@Test
public void testFattoriale() {
fail("Not yet implemented");
}
public void testFattorialeZero() {
assertEquals(1,classe_fattor.fattoriale(1));
}
}

6 Risposte

  • centurione_agrippa ha scritto:


    Ho provato con il calcolo del fattoriale ma mi da sempre il failures nonostante vada a correggere
    Hai un metodo annotato @Test che fallisce sempre ("non implementato") mentre l'altro dove testi qualcosa non è annotato @Test
  • Ciao e grazie per avermi risposto... Potresti dirmi dove devo correggere? Ho capito dove ho sbagliato ma non so come correggere
  • centurione_agrippa ha scritto:


    Potresti dirmi dove devo correggere? Ho capito dove ho sbagliato ma non so come correggere
    Ogni metodo di test deve essere annotato con @Test . Il tuo testFattorialeZero non è annotato così.
  • Grazie mille,problema risolto
  • Ora che ho capito come funziona Junit vorrei provarlo con un programma più corposo. Hai dei suggerimenti ?
  • centurione_agrippa ha scritto:


    Ora che ho capito come funziona Junit vorrei provarlo con un programma più corposo. Hai dei suggerimenti ?
    Mah .. dipende da cosa devi testare e dal contesto, perché potresti aver bisogno di studiare anche altre cose!
    Il metodo fattoriale che hai testato è estremamente banale, è un semplice metodo statico di "utilità" e non dipende da alcun oggetto "collaboratore". Pertanto lo unit testing è parecchio basilare/banale.

    Se invece il SUT (System Under Test, ovvero in questo contesto la classe sotto test) utilizza degli oggetti "collaboratori" (detti DOC, Depended On Component) questi li dovresti rendere "fittizi", ovvero dei "mock". E per questo esistono librerie apposite come Mockito.
Devi accedere o registrarti per scrivere nel forum
6 risposte