TDD - TDD JunitTest

TDD

  • TDD란 단 테스트가 주도하는 개발을 뜻함
  • TDD 절차
    1. 기능단위의 테스트 코드 작성
    2. 테스트가 통과하는 프로덕션 코드 작성
    3. 테스트가 통과하면 프로덕션 코드를 리팩토링

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);
      }
    

댓글남기기