Test jednostkowy: wiadomość do bazy danych
Wróć do klas ErrorStore i InfoStore z lekcji. Załóżmy, że metoda process(String message) zostaje wywołana z wiadomością [WARN] – co oznacza, że trafi ona do żadnej z baz danych. Napisz test, który to weryfikuje.
To ćwiczenie jest częścią kursu
Wprowadzenie do testowania w Javie
Instrukcje do ćwiczenia
- Zweryfikuj, że wiadomość nie trafiła do
infoStore. - Zweryfikuj, że nie trafiła też do
errorStore, korzystając z podejściatimes(). - W tej samej instrukcji dodaj metodę bazy danych,
save(), która nie została wywołana.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
public class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(MessageProcessorTest.class);
}
}
class MessageProcessorTest {
@Test
void process_savesNowhere_whenWrongMessageType() {
InfoStore infoStore = mock(InfoStore.class);
ErrorStore errorStore = mock(ErrorStore.class);
MessageProcessor processor = new MessageProcessor(infoStore, errorStore);
String message = "[WARN] The search is slow.";
processor.process(message);
// Verify infoStore was not called
____(infoStore);
// Verify errorStore.save was called 0 times
verify(errorStore, ____(0)).____(message);
}
}