Wyrzucanie wyjątków, a JUnit4 - logi ?!

0

Cześć,
Powiedzmy, że mam metodę:

...
static Logger logger = Logger.getRootLogger();
...
public String getName(int id) {
     if(id == 0)
        throw new BrakObywatela();

     logger.debug("Znalazlem obywatela");
     return this.id;
}

i mam metodę ją testującą:

@Test(expected=BrakObywatela)
public void testGetName() {
     return this.id;
}

oraz posiadam następującą klasę:

public class BrakObywatela extends Exception {
      static Logger logger = Logger.getRootLogger();
     public BrakObywatela() {
           logger.debug("Tworzę instancję dla wyjątku BrakObywatela");
      }
}

Mój problem polega na tym, że komunikat z konstruktora klasy wyjątku nie jest wyświetlany. Od razu chciałbym odrzucić zarzuty co do tego, że mam źle skonfigurowanego log4j, bo próba wypisania tekstu na konsole też nie przynosi pozytywnego rezultatu (system.out.println).

Do logów używam log4j, natomiast do testów jak widać junit4.

Dlacze nie wyświela mi komunikatu "Tworzę instancję dla wyjątku BrakObywatela" ?

Proszę o pomoc, dzięki!

0

A gdzie twoja "metoda testująca" wywołuje w ogóle metodę getName()? Bo ja nic takiego nie widzę.

0
Shalom napisał(a):

A gdzie twoja "metoda testująca" wywołuje w ogóle metodę getName()? Bo ja nic takiego nie widzę.

Faktycznie. Kod pisałem z głowy i zapomniałem, oczywiście w swoim kodzie mam poprawny kod dla junit i wygląda to w tym stylu:

private Baza baza;

@Before
public void init() {
     baza = new Baza();
}

@Test(expected=BrakObywatela)
public void testGetName() {
     baza.getName(832);
}

Gdzie tutaj jest problem ? Kod wyjątku mam na pewno pisany poprawnie, bo gdy wywołuję go w klasie, która nie korzysta z JUnit to mam poprawnie wyświetlany komunikat z konstruktora wyjątku, ale gdy wyjątek jest wykorzystywany w JUnit to tego komunikatu już nie ma, dlaczego ?

0

o_O ale wyjątek leci tylko jak id=0 więc dla id = 832 nie poleci.
Zresztą JUnit pewnie overriduje sobie możliwość logowania na konsole.

1 użytkowników online, w tym zalogowanych: 0, gości: 1