menu
書いてる野郎
orebike@gmail.com
これもよろしく自動でいろいろやってくれる一式があるのでそれを使う。
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
を読み込むようにしている。
対象を用意するのにコンストラクタインジェクションを使ってないのは、テストクラスではコンストラクタの形式が決まっていて使えないからである。