반응형
이전 포스팅에 이어서 이번 포스팅을 작성해보겠습니다!
이전 포스팅에서 만들었던 PostsRepository를 테스트해보는 코드를 작성해보겠습니다
1. 다음과 같이 패키지와 파일을 만들어줍니다
2. PostsRepositoryTest
@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).writer("poppy").build()); //빌더패턴 사용
//when
List<Posts> postsList = postsRepository.findAll(); //모든 데이터 조회
//then
Posts posts = postsList.get(0); //첫번째 데이터 가져옴
assertThat(posts.getTitle()).isEqualTo(title);
assertThat(posts.getContent()).isEqualTo(content);
}
}
@RunWith(SpringRunner.class) - SpringRunner라는 스프링 실행자 사용
@SpringBootTest - @SpringBootApplication을 찾아서 테스트를 위한 빈들을 다 생성합니다
@Autowired - 스프링 빈을 주입받습니다
@After - 단위 테스트가 끝날 때 수행되는 메소드를 지정하는 것입니다. 이 코드에서는 단위 테스트마다 모든 데이터를 지움으로써 다음에 단위 테스트를 할 때 데이터가 깨끗한 상태로 유지하기 위함입니다
postsRepository.save() - save메소드는 테이블에 insert나 update 쿼리를 실행합니다. ID값이 있다면 update 쿼리를 실행하고, ID값이 없다면 insert쿼리를 실행합니다. 이 코드에서는 insert쿼리를 실행합니다
assertThat(posts.getTitle()).isEqualTo(title); - post테이블의 제목을 가져와서 "테스트 제목"과 같은지 검증합니다
반응형
'Back-end > Spring' 카테고리의 다른 글
[SpringBoot] Spring Data JPA로 게시판 만들기(4) - 수정/조회 API (0) | 2020.11.22 |
---|---|
[SpringBoot] Spring Data JPA로 게시판 만들기(3) - 등록 API (0) | 2020.11.16 |
[SpringBoot] Spring Data JPA로 게시판 만들기(1) - domain, repository 생성 (0) | 2020.11.16 |
[SpringBoot] 롬복(Lombok) 적용하기 (0) | 2020.11.15 |
[SpringBoot] Controller 만들고 테스트 코드 작성해보기 (0) | 2020.11.09 |