概要
今回は、業務でリポジトリの単体テストを実施したため、テスト方法や設定などをサンプルと合わせてあげたいと思います。
リポジトリの設定方法context.xmlにて<mybatis:scan>
を用いてリポジトリのパスをしていすることでテスト時に@Inject
で依存関係の設定する。
以下のサンプルをcontext.xmlに追加する。
<mybatis:scan base-package="リポジトリのパス"/>
DBアクセス方法
リポジトリのDBアクセスを行う場合、context.xmlにてDBのbean定義を行う。
今回はh2 database
を使用する設定を以下に記す。
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url" value="jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
リポジトリのテスト方法
@Inject
を用いてリポジトリを呼び出し、DBアクセス処理を検証する。
サンプルを以下に示す。
@RunWith(SpringRunner.class)
@ContextConfiguration("classpath:context.xml")<!-- 1 -->
public class RepositoryTest {
@Inject
private Repository repository;<!-- 2 -->
@Test
@Sql("classpath:createAndInsert.sql")<!-- 3 -->
public void executeService_サービス実行処理正常終了() {
// 試験実行
List<TestDto> actual = repository.selectAll();<!-- 4 -->
// 実行結果検証
assertThat(actual.size()).isEqualTo(2);
assertThat(actual.get(0).getName).isEqualTo("name");<!-- 5 -->
}
}
1.ContextConfigurationアノテーションで指定したクラスパス内にあるcontext.xmlファイルを読み込む。
2.テストするリポジトリを呼び出す。
3.@Sql
アノテーションでテーブルの作成とデータを追加するSQLファイルを読み込む
4.リポジトリのDBアクセスを行うメソッドの呼び出し、戻り値を受け取る。
5.検証ではDBアクセスした結果を検証する。リストのサイズやリストの中身を検証する。
- 閲覧数 1174
コメントを追加