ホームページ  >  記事  >  Java  >  Springboot における junit ロールバックの役割は何ですか

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

PHPz
PHPz転載
2023-05-16 08:28:131135ブラウズ

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 までご連絡ください。