티스토리 뷰

반응형
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;

@RunWith(SpringRunner.class)
@SpringBootTest
public class PostsRepositoryTest {
    @Autowired
    PostsRepository postsRepository;

    @After
    public void cleanup() {
        postsRepository.deleteAll();
    }

    @Test
    public void 게시글저장_불러오기() {
        // given
        String title = "테스트 게시글";
        String content = "테스트 본문";

        postsRepository.save(Posts.builder()
                .title(title)
                .content(content)
                .author("sdardew@email.com")
                .build());
        
        // when
        List<Posts> postsList = postsRepository.findAll();
        
        // then
        Posts posts = postsList.get(0);
        assertThat(posts.getTitle()).isEqualTo(title);
        assertThat(posts.getContent()).isEqualTo(content);
    }
}

이전 글에서 작성했던 PostsRepository에 대한 테스트이다.

 

@After

  • Junit에서 단위 테스트가 끝날 때마다 수행되는 메소드
  • 테스트간 데이터 침범을 막아줌
  • 위의 코드에서는 테스트가 끝날 때마다 List를 비워줌

save()

  • 테이블 posts에 insert/update 쿼리를 실행
  • id 값이 없다면 insert
  • id 값이 있다면 update

findAll()

  • 테이블에 있는 모든 테이터를 조회해오는 메소드
  • Posts의 Repository이기 때문에 테이블 posts를 조회한다

 

 

쿼리 로그를 확인하고 싶을 때

 

1. src/main/resources 디렉토리 아래에 application.properties 파일을 생성한다

 

2. 아래의 옵션을 추가한다

spring.jpa.show-sql=true

 

3. 실행하면 H2 쿼리 문법의 쿼리 로그를 확인할 수 있다

💡 쿼리 로그를 MySQL 버전으로 보고 싶을 때

Github 참고 - https://github.com/jojoldu/freelec-springboot2-webservice/issues/67

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함