Test unitar: baza de date cu o listă
Folosind ErrorStore și InfoStore din lecție, metoda noastră process() acceptă acum o listă de mesaje. Pe baza listei de intrare furnizate, verifică de câte ori a fost apelată fiecare bază de date.
Acest exercițiu face parte din cursul
Introducere în testarea în Java
Instrucțiuni pentru exercițiu
- Creează un mock pentru
InfoStore. - Creează un mock pentru
ErrorStore. - Verifică de câte ori va fi apelat mock-ul
InfoStorecu argumentele curente. - Verifică de câte ori va fi apelat mock-ul
ErrorStorecu argumentele curente.
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_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.");
}
}