본문 바로가기

서버/TDD

(5)
[TDD 공부-java] 4) 테스트 코드 작성 개선사항 1. @BeforeEach와 @AfterEach 사용하기 모든 테스트는 순서가 보장 되지 않기 때문에 순서에 의존적으로 설계하면 절대 안된다. 예를 들어 이전 회원가입 테스트 메소드 내에서 생성한 사용자 정보를, 이후 로그인 테스트에서 사용하면 안된다.(로그인 테스트가 먼저 실행될 수도 있기 때문) 따라서 각 테스트 이후 혹은 이적에 진행해야할 것들을 @BeforeEach와 @AfterEach로 지정해준다. @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void af..
[TDD 공부-java] 3) 예외 처리 새로 배운 annotation @DisplayName(""): 테스트에 표시 이름을 붙이는 annotation @Disabled : 특정 테스트를 실행하고 싶지 않을 때 @ParameterizedTest + @ValueSource test메소드에 파라미터 값을 넣어준다. → 즉 여러가지의 값에 대해 동일한 테스트를 하고 싶을 때 사용한다. ex) 길이가 1이상 5이하인 문자열인지 테스트 → 길이가 1미만인 문자열 테스트 + 5초과인 문자열 테스트 이렇게 두 가지의 테스트가 필요하다. @ParameterizedTest(name="여기에 각 파리미터마다의 표시 이름이 들어간다") @ValueSource(타입={넣을 값들의 배열}) : 배열 각 원소를 파라미터에 넣어준다. 항상 @Test가 붙어있는 메소드만 ..
[TDD 공부-java] 2) 테스트 코드 작성 순서 익히기 오늘은 테스트 코드의 작성 순서와 왜 그런 순서를 따라야 하는지에 대해서 공부했다. 또, 실습을 위한 프로젝트의 기능명세서를 작성하고 어떻게 구현해야 할지에 대한 구상을 했다. 테스트 코드의 작성 대상 정하기 아래 두 가지 규칙에 따라서 어떤 기능의 테스트 코드부터 작성할지 결정한다. 구현하기 쉬운 경우에서 어려운 경우로 진행 빠르게 테스트를 통과시키기 위하여 ex. 테스트 해야할 기능이 아래와 같이 3가지가 있을 때, 아래와 같은 순서로 작성한다. 모든 규칙을 충족하는 경우가 구현하기 가장 쉬울 것이고, 1번으로 구현한 것에서 한 가지면 변형되는 2번을 그 다음으로 작성, 마지막으로 3을 작성한다. 모든 규칙을 충족하는 경우 길이만 8글자 미만이고 나머지 규칙을 충족하는 경우 길이가 8글자 이상인 규칙..
[TDD 공부-java] 1) intellij에서 JUnit 설정 및 간단한 테스트 코드 작성 🔴 TDD 란? 구현이 먼저가 아니라 테스트가 먼저다! 테스트는 올바르게 동작하는지를 검증하는 테스트 코드를 작성한다는 것을 의미한다. 기능을 검증하는 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행한다. 요구 기능에 대한 테스트 코드 작성 테스트 케이스를 통과하기 위한 최소한의 코드 생성 리펙토링 🟠 intellij에서 JUnit 설정 프로젝트를 생성한 후 [File] -> [Project Structure]를 선택해 Project Structure 창을 연다 [Modules] -> [Dependencies] 탭을 선택한다. 아래 [+]버튼 -> [Library..] -> [From Maven] 선택 창이 뜨면 org.junit.jupiter:junit-jupiter 검색 후 맞는 버..
[TDD 공부-java] 0) 어떻게 무엇을 공부할지 서버 개발을 하면서 에러가 날 때마다 테스트 코드의 필요성을 느꼈다. node.js기반으로 서버를 개발했기 때문에 모카로 테스트 코드를 작성했었는데, spring공부를 시작하면서 java로 TDD 공부를 제대로 다시해보려 한다. 목표는 6월부터 진행하는 소마 프로젝트에서 TDD제대로 적용하기! 이다. java문법도 많이 까먹었는데 java도 리마인드할 겸 공부하면 좋을 거 같다! 공부할 때 활용할 것들 book.naver.com/bookdb/book_detail.nhn?bid=16267566 테스트 주도 개발(Test Driven Development) 시작하기 작동하는 깔끔한 코드를 만드는 데 필요한 습관- JUNIT 5를 이용한 테스트 주도 개발 안내- 테스트 작성과 설계를 위한 대역- 테스트 가능한..

반응형