테스트 케이스

피오·2021년 6월 7일
post-thumbnail

테스트 코드 디렉토리

본 소스 디렉토리 구조와 똑같이 만들고, 파일명은 관례적으로 "테스트할 클래스명" + "Test로 짓는다.



@Test

메소드 위에 @Test(org.junit.jupiter.api)어노테이션을 달면 JUnit이 알아서 해당 메소드를 테스트코드로 실행할 수 있다. 파란불 뜨면 잘 실행된 거고, 에러나면 주황 x 뜨면서 Expected, Actual정보가 콘솔창에 뜸.

테스트 케이스 실행순서, 공용 데이터 클리어

테스트 케이스는 순서가 랜덤하게 실행됨. 그래서 테스트 케이스는 순서 의존적으로 설계하면 안된다. 데이터로 인해 테스트 케이스가 꼬이지 않도록 테스트 하나가 끝나면 데이터를 클리어해주는 코드를 실행 해줘야 함.
이를 위해 @AfterEach 어노테이션을 단 메서드를 하나 만들어서 내부에 공용 데이터를 클리어하는 코드를 작성해 두면, 각 테스트 메서드들이 끝날 때마다 @AfterEach 메서드가 실행되어 데이터가 클리어 된다.

이 강의에서는 먼저 MemoryMemberRepository란 클래스를 다 개발하고 나서 테스트 케이스를 작성했다. 근데 반대로 검증을 위한 테스트 케이스를 작성하고 나서 구현 클래스를 개발하면 그게 TDD.

Tip

인텔리제이 기준

  • File > Project Structure > Module에서 디렉토리 선택 후 Mark as: Tests를 적용하면 해당 폴더가 테스트 코드 루트 디렉토리로 지정되며, 폴더가 초록색으로 바뀐다.

  • sout + tab치면 syso 풀 타이핑됨.

  • 특정 단어에 커서 두고 shift + F6누르면 파일 내 같은 단어들 모두 rename할 수 있음.




처음으로 테스트 케이스를 작성해봤다. ui5에서 QUnit을 사용할 수 있는 걸로 아는데, 프로젝트 중에 테스트 코드를 작성해 본 적은 없다. 소나 큐브를 연결해서 문법 오류나 코딩 컨벤션 어긋나는 것들을 리포트 받긴 했었지만, 테스트 코드를 작성하는 거랑은 결이 좀 다른 것같다.

프론트엔드랑 백엔드는 테스트 코드 작성법이 좀 다를 것같다고 생각해서 좀 찾아보니 프론트 엔드에서는 테스트 코드를 작성하는 게 힘들기도 하고, 효용이 떨어진다는 글들을 많이 보았다. 대충 어떤 느낌인진 알겠는데 직접 겪어봐야 잘 느껴질 것같다.

profile
블로그 이전했습니다. https://pzbg.tistory.com/

0개의 댓글