TDD - TDD JunitTest
TDD
- TDD란 단 테스트가 주도하는 개발을 뜻함
- TDD 절차
- 기능단위의 테스트 코드 작성
- 테스트가 통과하는 프로덕션 코드 작성
- 테스트가 통과하면 프로덕션 코드를 리팩토링
Junit Test
- 테스트 코드 작성을 도와주는
java
의 테스트 프레임워크
- 개발 환경에 Junit 추가 후
@Test
어노테이션을 사용하여 Junit테스트 가능
- given, when, then 형태로 사용하는 것이 좋음.
Example
- ex) 포스트 등록 테스트 코드
@AfterEach
public void tearDown() throws Exception {
postsRepository.deleteAll();
}
@Test
@WithMockUser(roles = "USER") // 인증된 모의 사용자를 만들어 테스트함
public void Posts_등록된다() throws Exception {
//given
String title = "title";
String content = "content";
PostsSaveRequestDto requestDto = PostsSaveRequestDto.builder()
.title(title)
.content(content)
.author("author")
.build();
String url = "http://localhost:"+port+"/api/v1/posts";
//when
ResponseEntity<Long> responseEntity = restTemplate.postForEntity(url, requestDto, Long.class);
mvc.perform(post(url).contentType(MediaType.APPLICATION_JSON_UTF8)
.content(new ObjectMapper().writeValueAsString(requestDto)))
.andExpect(status().isOk());
//then
List<Posts> all = postsRepository.findAll();
assertThat(all.get(0).getTitle()).isEqualTo(title);
assertThat(all.get(0).getContent()).isEqualTo(content);
}
댓글남기기