Jestem również nowy w Mockito i PowerMockito. Dowiedziałem się, że nie mogę przetestować statycznych metod z czystym Mockito, więc potrzebuję użytkownika PowerMockito (prawda?).Z jakiego powodu powinienem kpić?
Mam bardzo prostą klasę o nazwie Testuj z tym bardzo łatwy sposób
public class Validate {
public final static void stateNotNull(
final Object object,
final String message) {
if (message == null) {
throw new IllegalArgumentException("Exception message is a null object!");
}
if (object == null) {
throw new IllegalStateException(message);
}
}
więc muszę sprawdzić, czy:
1) Kiedy ja nazywam to metoda statyczna na pustym wiadomości argumentu IllegalArgumentException nazywa
2) Kiedy zadzwonić, że metoda statyczna na obiekt zerowy argument IllegalStateException nazywa
Z tego, co mam do tej pory pisałem ten test:
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.isNull;
import org.junit.Before;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.testng.annotations.Test;
@RunWith(PowerMockRunner.class)
@PrepareForTest(Validate.class)
public class ValidateTestCase {
@Test(expectedExceptions = { IllegalStateException.class })
public void stateNotNullTest() throws Exception {
PowerMockito.mockStatic(Validate.class);
Validate mock = PowerMockito.mock(Validate.class);
PowerMockito.doThrow(new IllegalStateException())
.when(mock)
.stateNotNull(isNull(), anyString());
Validate.stateNotNull(null, null);
}
}
Więc to mówi, że drwić klasy walidacji i ja sprawdzając, kiedy nazywa się na mock tej metody z pustym argumentem jako przedmiot i dowolny ciąg jako wiadomość, IllegalStateException jest wyrzucane.
Teraz naprawdę nie rozumiem. Dlaczego po prostu nie mogę nazwać tej metody bezpośrednio, rzucając całą magię voodoo na kpiny z tej klasy statycznej? Wydaje mi się, że jeśli nie zadzwonię do Validate.stateNotNull, ten test i tak przepadnie ... Z jakiego powodu powinienem go kpić?