環境
確認時の環境:Spring-Boot 2.7.x + JUnit5
メモ
SpringBootのAPIサーバを起動してテストする
公式サイト の「アプリケーションをテストする」部分
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class APITest {
/** ...略... */
}
起動したAPIサーバに対してリクエストを投げてテストする
公式サイト の「アプリケーションをテストする」部分
localhostに対して restTemplate 使ってリクエストを投げる形。
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class APITest {
@LocalServerPort
private int port;
@Autowired
private TestRestTemplate restTemplate;
@Test
public void greetingShouldReturnDefaultMessage() throws Exception {
assertThat(this.restTemplate.getForObject("http://localhost:" + port + "/",
String.class)).contains("Hello, World");
/** ...略... */
}
コントローラの中のサービスをモック化したい場合
@MockBean
or @SpyBean
を使う。
@InjectMocks
や MockitoAnnotations.initMocks
は不要。
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class APITest {
/** ...略... */
@Mockbean
HogeService hogeService;
/** ...略... */
}
モックの動作の書き方は Mockito。