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");
...
}
}

コメント