Maison  >  Article  >  Java  >  Quel est le rôle de la restauration de Junit dans Springboot

Quel est le rôle de la restauration de Junit dans Springboot

PHPz
PHPzavant
2023-05-16 08:28:131137parcourir

Junit est utilisé pour écrire des tests unitaires dans Springboot, et les résultats des tests n'affectent pas la base de données.

pom introduit des dépendances

S'il s'agit d'un projet généré par un IDE, ce package a été introduit par défaut.

<dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
      <scope>test</scope>
    </dependency>

Données brutes de base de données

Quel est le rôle de la restauration de Junit dans Springboot

données brutes

Écriture de tests unitaires

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

}

Données de résultat

Quel est le rôle de la restauration de Junit dans Springboot

Données de résultat

Conclusion

D'accord On peut voir que les données du code =001001 n'a pas changé et les données avec le code=001003 ont été modifiées avec succès. En regardant le code :

@Transactional signifie que la méthode dans son ensemble est une transaction,

@Rollback signifie que la transaction est annulée après l'exécution. Elle prend en charge la transmission d'une valeur de paramètre. roll back et false pour ne pas revenir en arrière.

Cette annotation prend également en charge les annotations sur les classes. Si tel est le cas, elle sera efficace pour l'ensemble de la méthode de classe.

Quel est le rôle de la restauration de Junit dans Springboot

Annotation sur la classe

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer