Spring Boot/開発/テスト

Spring Boot/開発/テスト

準備

これもよろしく自動でいろいろやってくれる一式があるのでそれを使う。

dependencies {
    // 中略
    testImplementation('org.springframework.boot:spring-boot-starter-test')
}

基本

src/test/java 以下に対象と同一パッケージ階層を作りそこにテストクラスを作成する。 命名は特に縛りは無いようだが、

テスト対象クラス名Test

としておけばわかりやすいだろう。そこにテストメソッドを実装する。 このメソッド名も

テスト対象メソッド名Test

としておけばわかりやすいだろう。

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=SpringBootTest.WebEnvironment.NONE)
@ActiveProfiles("test")
public class HogeServiceTest {
    @Autowired
    private HogeService hogeService;
 
    @Test
    public void helloTest() throws Exception {
        Assert.assertTrue("hello".equals(hogeService.hello()));
    }
}

このようになる。 クラスにアノテーションをいくつかつけて Spring の管理下で動くようにする。 ActiveProfiles アノテーションを使ってテスト用の application-test.yml を読み込むようにしている。

対象を用意するのにコンストラクタインジェクションを使ってないのは、テストクラスではコンストラクタの形式が決まっていて使えないからである。

java/spring/spring_boot/dev/test/start.txt · 最終更新: 2019-07-01 18:54 by ore