Enhetstest: Databasmeddelande
Tänk på ErrorStore och InfoStore från lektionen. Anta att metoden process(String message) används på ett [WARN]-meddelande, vilket innebär att det inte hamnar i någon av databaserna. Skriv ett test som verifierar detta.
Den här övningen är en del av kursen
Introduktion till testning i Java
Övningsinstruktioner
- Verifiera att meddelandet inte hamnade i
infoStore. - Verifiera att det inte heller hamnade i
errorStore, med hjälp avtimes()-metoden för verifiering. - Lägg till databasmetoden
save()i samma uttryck – den metod som inte anropades.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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);
}
}