Heim > Java > javaLernprogramm > Hauptteil

Welche Rolle spielt das Junit-Rollback in Springboot?

PHPz
Freigeben: 2023-05-16 08:28:13
nach vorne
1140 Leute haben es durchsucht

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>
Nach dem Login kopieren

Datenbank-Rohdaten

Welche Rolle spielt das Junit-Rollback in Springboot?

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);
  }

}
Nach dem Login kopieren

Ergebnisdaten

Welche Rolle spielt das Junit-Rollback in Springboot?

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.

Welche Rolle spielt das Junit-Rollback in Springboot?

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage