Test unitario: Database con una lista
Considera ErrorStore e InfoStore dalla lezione, ma ora il nostro metodo process() accetta una lista di
messaggi. Dato l’insieme di input fornito, verifica che ogni database sia stato chiamato il numero corretto di volte.
Questo esercizio fa parte del corso
Introduzione al Testing in Java
Istruzioni dell'esercizio
- Crea un mock per
InfoStore. - Crea un mock per
ErrorStore. - Verifica quante volte il mock di
InfoStoreverrà chiamato con gli argomenti attuali. - Verifica quante volte il mock di
ErrorStoreverrà chiamato con gli argomenti attuali.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
public class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(MessageProcessorTest.class);
}
}
class MessageProcessorTest {
@Test
void process_savesToCorrectDatabase_whenValidInputList() {
List sampleMessages = new ArrayList<>();
sampleMessages.add("[INFO] An info message.");
sampleMessages.add("[INFO] An info message.");
sampleMessages.add("[ERROR] An error message.");
sampleMessages.add("[INFO] An info message.");
// Create a mock for the InfoStore
InfoStore ____ = ____(____.class);
// Create a mock for the ErrorStore
ErrorStore ____ = ____(____.class);
MessageProcessor processor = new MessageProcessor(infoStore, errorStore);
processor.process(sampleMessages);
// Verify how many times the infoStore has to store the message
____(____, times(3)).save("[INFO] An info message.");
// Verify how many times the errorStore has to store the message
____(____, times(1)).save("[ERROR] An error message.");
}
}