モックを利用ぜず、DBにアクセスするサービスクラスのテスト方法

  •  
 
yokoe2021年6月22日 - 10:14 に投稿

タグ

概要

今回は依存クラスを利用したサービスクラスの単体テストの実装方法についてサンプルと合わせて説明する。

モックを利用ぜず、DBにアクセスするサービスクラスのテスト方法

テスト対象(サービスクラス)を@Injectアノテーションで呼び出す際以下のサンプルのようにcontext.xmlに記述する。
また、リポジトリを依存関係を使って呼び出す方法はリポジトリの単体テスト方法 に記載している。

<bean id="Service" class="サービス実装クラスのクラスパス" />

サービスクラスの単体テストのサンプルを以下に示す。
以下のサンプルはデータを追加しデータのリストを返すサービスのテストのサンプルになる。

@RunWith(SpringRunner.class)
@ContextConfiguration("classpath:context.xml")<!--1-->
@Sql("classpath:testCreate.sql")
public class ServiceTest {

    @Inject<!--2-->
    private Service target;

    @Inject
    private Repository repository;

    @Test
    @Sql("classpath:testInsert.sql")
    public void test() {
        // 設定
        // 引数:パラメータの設定
        TestDto param = new TestDto();
        param.setId("2");
        param.setName("name");

        // 試験実行
        List<TestDto> actual = target.executeService(param);

        // 実行結果検証
        assertThat(actual.size()).isEqualTo(2);

    }

}

1.ContextConfigurationアノテーションで指定したクラスパス内にあるcontext.xmlファイルを読み込む。
2.context.xmlにインジェクトするクラスのbeanを記述することでインジェクトすることができる。

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。