Spring bootで作成したアプリケーションのテストを行う際にテストクラスに@Autowiredを使用する

Spring bootで作成したアプリケーションのテストを行う際に、
そのアプリケーションで使用しているRepositoryクラスを用いてテスト用データを登録したり、Injectionを行いたい場合があります。
その際に基礎となるアノテーションについて書きます。

大体はここに書いてあるのですが、
まずはspring-testへの依存関係を記載します。

(build.gradle)

dependencies {
    ...
    testCompile 'org.springframework:spring-test:4.0.8.RELEASE'
}

テストクラスに対しては、SpringJUnit4ClassRunnerをTestRunnerとすることと、
@SpringApplicationConfigurationでSpring bootのApplicationConfigurationの指定を行います。

これでconfigurationに書いたPackageScanやEntityScanの設定が有効になり、
@AutowiredでInjectionすることが可能になります。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class RecurringTest extends TestCase {
  @Autowired
  HogeRepository hogeRepository;

  @Test
  public void test2() throws Exception {
    Hoge hoge = hogeRepository.findOne("hoge");
    ...
  }
}

投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください