Kom igångKom igång gratis

BeforeEach: Aviseringar

I takt med att projektet växer kan testerna kräva allt längre setup-kod. Med det i åtanke återvänder du till DurationMonitorTest och använder de nya annotationerna för att lyfta ut en del av testuppsättningen till en setup()-metod.

Använd @BeforeEach för att se till att setup-koden körs före varje test.

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

Introduktion till testning i Java

Visa kurs

Övningsinstruktioner

  • Annotera setup()-metoden med rätt annotation.
  • Skriv den nödvändiga setup-koden inuti den: AlertService är en mock och DurationMonitor tar emot den mocken.

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