본문 바로가기

테스트/TDD3

Controller Test 작성 방법 및 예시 정리 참고 : https://cobbybb.tistory.com/16#4.2%20SpringBootTest%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20Refactoring%20%3A%20%40MockBean-1 UserController에는 회원가입, 로그인 기능을 제공하는 controller 메서드가 존재한다. 아래 예시에서 회원가입 컨트롤러 메서드의 응답은 userService.join(...) 메서드 수행 결과에 의존한다. userService.join(...) 메서드에서 로직 수행 결과 받을 수 있는 개발자가 정의한 응답 가지의 수는 2가지이다. request한 username이 이미 가입되어 있는 상황일 때 exception이 발생하고, 아니면 정상 수행 응답하는 경우로 총 2가지.. 2023. 8. 13.
테스트 코드 작성 순서 테스트 코드 작성 순서 쉬운 경우에서 어려운 경우로 진행한다. 예외적인 경우에서 정상적인 경우로 진행한다. 다양한 예외 상황은 복잡한 if-else 블록을 동반하는 경우가 많다. 예외 상황을 먼저 테스트하면 예외 상황에 따른 if-else 구조가 미리 만들어지기 때문에 많은 코드를 완성한 뒤에 예외 상황을 반영할 때보다 코드 구조가 덜 바뀐다. TDD 구현 순서(단계) 1. 정해진 값을 리턴 2. 값 비교를 이용해서 정해진 값을 리턴 3. 다양한 테스트를 추가하면서 구현을 일반화 테스트 작성 순서 연습 매달 비용을 지불해야 사용할 수 있는 유료 서비스가 있다고 가정, 이 서비스는 다음 규칙에 따라 서비스 만료일을 결정한다. 1. 서비스를 사용하려면 매달 1만 원을 선불로 납부한다. 납부일 기준으로 한 달.. 2023. 4. 24.
TDD TDD란? TDD는 구현을 먼저 하고 나중에 테스트를 진행하는 것이 아니라, 먼저 테스트 코드를 작성하고 후에 구현을 한다는 것을 의미한다. -> 기능을 검증하는 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행한다. TDD 흐름 테스트 -> 코딩 -> 리팩토링 -> 테스트.. TDD는 기능을 검증하는 테스트를 먼저 작성한다. 작성한 테스트를 통과하지 못하면 테스트를 통과할 만큼만 코드를 작성한다. 테스트를 통과한 뒤에는 개선할 코드가 있으면 리팩토링 한다. 리팩토링을 수행한 뒤에는 다시 테스트를 실행해서 기존 구현한 기능이 망가지지 않았는지 확인한다. 위 과정을 반복하면서 기능을 완성해 나가는 것이 전형적인 TDD의 흐름이다. TDD 적용 시 주요 장점 - TDD는 개발 과정에서 지속적.. 2023. 4. 9.