//Controller
@Controller
public class IndexController {
@GetMapping("/")
public String index() {
return "index";
}
}
//Test
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class IndexControllerTest {
@Autowired
private TestRestTemplate restTemplate;
@Test
public void 메인페이지_로딩() {
//when
String body = this.restTemplate.getForObject("/", String.class);
//then
assertThat(body).contains("스프링 부트로 시작하는 웹 서비스");
}
}
위 테스트는 실제로 URL 호출 시 페이지의 내용이 제대로 호출되는가에 대한 테스트다.
Jojoldu: HTML도 결국은 규칙이 있는 문자열이다.
TestRestTemplate를 통해 "/"로 호출했을 때, index.mustache가 호출된다. 이 때, String 형태로 HTML의 모든 문자열을 가져온다.
모든 코드를 다 검증할 필요가 없으니, 특정 문자열을 포함했는지에 대해 검증을 진행한다. 여기서는 "스프링 부트로 시작하는 웹 서비스" 문자열의 포함 여부로 검증한다.
@WebMvcTest에서 CustomOAuth2UserService을 찾을 수 없음 (0) | 2020.06.29 |
---|---|
Spring-security 모듈 추가 후 테스트 에러 해결 (0) | 2020.06.29 |
Spring_boot를 테스트하기 위한 어노테이션 및 메소드 (0) | 2020.06.29 |
신규 모듈 추가시 전체 테스트 에러가 발생한다. (0) | 2020.06.29 |
단위 테스트 소개 (0) | 2020.06.18 |