[ Spring ] 예제 실습과 테스트코드, 그리고 몇개의 단축키
in BackEnd
단축키
클래스에서
command + shift + t
: 해당 클래스 Test코드 파일 생성Shift + F6
: 같은 단어 동시 선택. 단, 문자열은 선택 안됨 (vsc에서 cmd+d 와 비슷)soutv
: System.out.println(“result = “ + result ) 단축어option + command + v
: Optional 결과값 바로 만들어줌- implements를 사용해서 메서드를 가져오려고 할때에는
public class MemoryMemberRepository implements MemberRepository
MemberRepository
에서option + 엔터
눌렀을때 나오는implement methods
를 클릭하고전체 다 선택해서 OK 누르면
MemberRepository
에 있는 모든 methods을 다 가져온다 Control + r
: 바로 이전에 실행했던 작업 실행Control + e
: 봐왔던 파일 목록 최신순으로 나열
테스트코드
테스트코드는 순서를 보장하지 않는다.
그래서 각각 하나의 테스트코드가 끝날때마다 혹은 시작할때마다 각각의 세팅값을 정해줘야한다.
그떄 사용할 수 있는게 @AfterEach
@BeforeEach
이다.
@AfterEach
public void afterEach(){
memberRepository.clearStore(); //끝날때마다 DB초기화
}
@BeforeEach
public void beforeEach(){
memberRepositroy = new MemoryMemberRepository();
memberService = new MemberService(memberRepository); //DI
}
테스트코드를 작성할때는 이 3가지를 기억하면 조금 더 편하게 로직을 작성할 수 있다.
- given : 이런상황이 주어졌는데,
- when : 이걸 실행했을때,
- then : 결과가 이게 나와야해
라는 로직이다.
Assertions
를 assertj
에서 import해서 사용하는데,
Assertions 를 option + 엔터
누르면 Introduce local variable
과 Add on-demand static import for 'org.assertj.core.api.Assertions
라고 뜨는데, Add on-demand ~~~
을 클릭하면
import static org.assertj.core.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.*;
이렇게 전체를 import 해서 이 이후로는 Assertions 없이 Assertions 내장메서드들을 바로 쳐도 된다.
BEFORE : Assertions.assertThat(member.getName()).isEqualTo(findMember.getName());
AFTER : assertThat(member.getName()).isEqualTo(findMember.getName());
김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
수업들으면서 정리!