[ Spring ] 예제 실습과 테스트코드, 그리고 몇개의 단축키




단축키

  • 클래스에서 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가지를 기억하면 조금 더 편하게 로직을 작성할 수 있다.

  1. given : 이런상황이 주어졌는데,
  2. when : 이걸 실행했을때,
  3. then : 결과가 이게 나와야해

라는 로직이다.




Assertionsassertj에서 import해서 사용하는데,

Assertions 를 option + 엔터 누르면 Introduce local variableAdd 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 접근 기술 수업들으면서 정리!




© 2018. by sora

Powered by sora