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
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
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.
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!