Test unitar: Mesaj în baza de date
Gândește-te la ErrorStore și InfoStore din lecție. Presupune că metoda process(String message) este apelată cu un mesaj de tip [WARN], ceea ce înseamnă că acesta nu va ajunge în nicio bază de date. Scrie un test care să verifice acest lucru.
Acest exercițiu face parte din cursul
Introducere în testarea în Java
Instrucțiuni pentru exercițiu
- Verifică că mesajul nu a ajuns în
infoStore. - Verifică că nu a ajuns nici în
errorStore, folosind abordarea de verificare cutimes(). - În același enunț, adaugă metoda bazei de date,
save(), care nu a fost apelată.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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);
}
}