Aan de slagGa gratis aan de slag

BeforeEach: waarschuwen

Naarmate je project complexer wordt, kunnen tests steeds meer setup nodig hebben. Om daarop voorbereid te zijn, kijk je opnieuw naar de DurationMonitorTest en gebruik je de nieuwe annotaties om een deel van de test-setup in een setup()-methode onder te brengen.

Gebruik @BeforeEach om de setup vóór elke test uit te voeren.

Deze oefening maakt deel uit van de cursus

Introductie tot testen in Java

Cursus bekijken

Oefeninstructies

  • Voorzie de setup()-methode van de juiste annotatie.
  • Schrijf de noodzakelijke setup erin: AlertService is een mock, DurationMonitor krijgt die mock mee.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

public class Main {
    public static void main(String[] args) {
        launchMockitoTestsAndPrint(DurationMonitorTest.class);
    }
}

class DurationMonitorTest {
	private AlertService alertService;
	private DurationMonitor monitor;
    
    // Use the correct annotation to make this method execute before every test
    @____
    void setUp() {
    	// Set up the mock alertService and the monitor as you did in the earlier exercise
    	this.alertService = ____(____.class);
        this.monitor = new ____(alertService);
    }
    
    @Test
    void recordDuration_triggersAlert_whenAboveLimit() {
        this.monitor.recordDuration(1500);
        verify(this.alertService).trigger("Slow execution detected: 1500ms");
    }

    @Test
    void recordDuration_doesNotTriggerAlert_whenUnderLimit() {
        this.monitor.recordDuration(500);
        verifyNoInteractions(this.alertService);
    }
}
Code bewerken en uitvoeren