Kom igångKom igång gratis

Enhetstest: Databas med en lista

Ta ErrorStore och InfoStore från lektionen, men nu tar vår metod process() emot en lista med meddelanden. Givet den angivna indatalistan, verifiera att varje databas anropades rätt antal gånger.

Den här övningen är en del av kursen

Introduktion till testning i Java

Visa kurs

Övningsinstruktioner

  • Skapa en mock för InfoStore.
  • Skapa en mock för ErrorStore.
  • Verifiera hur många gånger mocken för InfoStore kommer att anropas med de aktuella argumenten.
  • Verifiera hur många gånger mocken för ErrorStore kommer att anropas med de aktuella argumenten.

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_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."); 
    }
}
Redigera och kör kod