Rumah > Java > javaTutorial > teks badan

Apakah peranan junit rollback dalam springboot

PHPz
Lepaskan: 2023-05-16 08:28:13
ke hadapan
1159 orang telah melayarinya

Gunakan junit untuk menulis ujian unit dalam springboot, dan keputusan ujian tidak menjejaskan pangkalan data.

pom import dependencies

Jika ia adalah projek yang dijana oleh IDE, pakej ini telah diimport secara lalai.

<dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
      <scope>test</scope>
    </dependency>
Salin selepas log masuk

Data mentah pangkalan data

Apakah peranan junit rollback dalam springboot

data mentah

Menulis ujian unit

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

}
Salin selepas log masuk

Keputusan Data

Apakah peranan junit rollback dalam springboot

Data keputusan

Kesimpulan

Dapat dilihat bahawa data kod= 001001 tidak berubah dan data dengan kod=001003 telah berjaya diubah suai. Melihat kembali kod:

@Transactional menunjukkan bahawa kaedah tersebut adalah satu urus niaga secara keseluruhan,

@Rollback menunjukkan bahawa urus niaga digulung semula selepas pelaksanaannya menyokong lulus dalam nilai parameter, dan lalai adalah benar Iaitu, rollback, false tidak rollback.

Anotasi ini juga menyokong anotasi pada kelas. Jika ya, ia akan berkesan untuk keseluruhan kaedah kelas.

Apakah peranan junit rollback dalam springboot

anotasi pada kelas

Atas ialah kandungan terperinci Apakah peranan junit rollback dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan