현재 Spring Boot 공부는 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'로 진행하고 있습니다 💪🏻
책 p.96 - p.97 부분을 열심히 따라하고 있었는데 @After 부분에서 Tab키를 누르면 @After() 이렇게 계속 뜨길래.. 또 에러가 뜨겠구만.. 싶었다..
역시가 사람을 잡네..
너무 단순하게 구글링을 해서 그런지 원하는 정답을 얻기는 쉽지 않았다.
아직 아는 게 많이 없어서 어떤 것이 키워드인지 몰라서 무작정 검색을 하다가 관련 있어 보이는 글을 보고 바로 시도해보았는데 어영부영 성공하기는 했다.
진짜 정답인지 아닌 지 판별할 수 있는 능력은 아직..
@After은 https://deepweller.tistory.com/30 글을 참고하여 채워 보았다.
@After(value = "execution(* com.test.controller.TestController.*(..))")
public void cleanup() {
postsRepository.deleteAll();
}
package com.jojoldu.book.springboot.domain.posts;
import org.aspectj.lang.annotation.After;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
public class PostsRepositoryTest {
@Autowired
PostsRepository postsRepository;
@After(value = "execution(* com.test.controller.TestController.*(..))")
public void cleanup() {
postsRepository.deleteAll();
}
@Test
public void 게시글저장_불러오기() {
//given
String title = "테스트 게시글";
String content = "테스트 본문";
postsRepository.save(Posts.builder().title(title).content(content).author("jojoldu@gmail.com").build());
//when
List<Posts> postsList = postsRepository.findAll();
//then
Posts posts = postsList.get(0);
assertThat(posts.getTitle()).isEqualTo(title);
assertThat(posts.getContent()).isEqualTo(content);
}
}
저번 글처럼 import 부분은 먼저 하지 않았고 메인 코드를 다 작성하고 import 부분을 확인했다.
import 어쩌고 After 이나 import 어쩌고 Test는 조금 다르게 되어 있는 것 같아 넘겼고 import 어쩌고 RunWith 는 바로 저번 글에 적은 내용을 참고해서 적지 않았다.
저번에도 오류가 생겼다가 해결했는데 기록해두지 않아서 까먹었는데
나처럼 메인 코드를 먼저 적고 오류를 찾으면 assert 부분에서 빨간색이 뜨는데
//then
Posts posts = postsList.get(0);
assertThat(posts.getTitle()).isEqualTo(title);
assertThat(posts.getContent()).isEqualTo(content);
그럴 땐 빠르게
import static org.assertj.core.api.Assertions.assertThat;
적으면 해결!
다른 애들처럼 자동으로 적히지 않기 때문에 까먹지 말고 적어야된다!