概要
今回は依存クラスを利用したサービスクラスの単体テストの実装方法についてサンプルと合わせて説明する。
モックを利用ぜず、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を記述することでインジェクトすることができる。
- 閲覧数 1160
コメントを追加