Junit wird zum Schreiben von Komponententests in Springboot verwendet und die Testergebnisse haben keinen Einfluss auf die Datenbank.
pom führt Abhängigkeiten ein
Wenn es sich um ein von einer IDE generiertes Projekt handelt, wurde dieses Paket standardmäßig eingeführt.
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-test</artifactid> <scope>test</scope> </dependency>
Datenbank-Rohdaten
Rohdaten
Schreiben von Unit-Tests
package com.mos.quote; import com.mos.quote.model.Area; import com.mos.quote.service.IAreaService; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest public class QuoteApplicationTests { @Autowired private IAreaService areaService; @Test public void contextLoads() { } @Test public void testUpdate(){ Area area = new Area(); area.setCode("001003"); area.setName("洛阳市"); Integer result = areaService.update(area); Assert.assertEquals(1, (long)result); } @Test @Transactional @Rollback public void testUpdate4Rollback(){ Area area = new Area(); area.setCode("001001"); area.setName("郑州市123"); Integer result = areaService.update(area); Assert.assertEquals(1, (long)result); } }
Ergebnisdaten
Ergebnisdaten
Fazit
Okay Es ist ersichtlich, dass die Daten des Codes =001001 hat sich nicht geändert und die Daten mit Code=001003 wurden erfolgreich geändert. Rückblickend auf den Code:
@Transactional bedeutet, dass die Methode als Ganzes eine Transaktion ist,
@Rollback bedeutet, dass die Transaktion nach der Ausführung zurückgesetzt wird. Der Standardwert ist true Rollback und false, um kein Rollback durchzuführen.
Diese Annotation unterstützt auch Annotationen zu Klassen. Wenn ja, ist sie für die gesamte Klassenmethode wirksam.
Anmerkung zum Unterricht
Das obige ist der detaillierte Inhalt vonWelche Rolle spielt das Junit-Rollback in Springboot?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!