Springboot における junit ロールバックの役割は何ですか

PHPz
リリース: 2023-05-16 08:28:13
転載
1139 人が閲覧しました

Junit は Springboot で単体テストを作成するために使用され、テスト結果はデー​​タベースに影響を与えません。

Pom による依存関係の導入

IDE によって生成されたプロジェクトの場合、このパッケージはデフォルトで導入されています。

<dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
      <scope>test</scope>
    </dependency>
ログイン後にコピー

データベース元データ

Springboot における junit ロールバックの役割は何ですか

元データ

単体テストの書き込み

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

}
ログイン後にコピー

結果データ

Springboot における junit ロールバックの役割は何ですか

結果データ

結論

code=のデータであることがわかります。 001001 は変更されておらず、コード = 001003 のデータは正常に変更されました。コードを振り返る:

@Transactional はメソッド全体がトランザクションであることを示し、

@Rollback はトランザクションが実行後にロールバックされることを示します。パラメータ値の受け渡しをサポートしており、デフォルトは true、つまりロールバックです。false はロールバックしません。

このアノテーションはクラスに対するアノテーションにも対応しており、その場合はクラスメソッド全体に有効となります。

Springboot における junit ロールバックの役割は何ですか

クラスのアノテーション

以上がSpringboot における junit ロールバックの役割は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート