Rumah  >  Artikel  >  Java  >  Apakah peranan junit rollback dalam springboot

Apakah peranan junit rollback dalam springboot

PHPz
PHPzke hadapan
2023-05-16 08:28:131095semak imbas

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>

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

}

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam