Open
Conversation
README.md에 요구 사항 정리 View 코드를 분석하여 추가 요구 사항 정리
입력 값을 받아서 모델에 전달하는 기능 추가
Lotto.js 객체에서 로또 숫자를 생성하는지 테스트
Lotto.js 객체에서 랜덤 숫자를 자동으로 정렬해서 저장하는지 테스트
Lotto.js 객체에서 랜덤 숫자를 자동으로 정렬해서 저장하는지 테스트
mockRandom과 같은 테스트 유틸 함수를 재사용하기 위해 분리
정상 입력 1500원 입력시 3개의 로또 구매 비정상 입력 문자열 입력시 에러 발생 비정상 입력 500단위가 아닌 숫자 입력시 에러 발생
로또를 가지고 있는 User객체 구현 로또를 구매하고 반환하는 기능을 갖고 있음
로또 길이 및 로또 숫자 제한을 상수 값으로 활용하여 변동에 용이하도록 수정
중복된 숫자, 범위 밖 숫자, 문자열 입력시 예외 처리
당첨 번호 입력시 예외처리 로직 추가
정상 입력시 get 메서드 동작 테스트 추가
당첨 번호와 보너스 번호를 get하는 로직 추가
Calculator가 번호를 입력 받으면 등수를 계산하는 테스트 작성
당첨 번호, 보너스 번호, 로또 번호를 입력 받으면 결과를 계산하여 Map 객체를 전달하는 로직 구현
input으로 돈을 입력 받고 로또를 구매 후 출력 보너스 번호를 입력 받고 Game에 등록 Calculator를 통해 계산 결과를 OutputView에 전달
기존 메서드의 경우 강제 형변환을 통해 '100m' 과 같은 경우를 통과 시키기 때문에 변경이 필요 그러나 기존 메서드 수정이 불가하기 때문에 메서드를 새롭게 추가함
README.md에 도전 목표 수립
로또 단위가 아닌 금액을 입력해도 예외처리 하지 않도록 수정
App.js 테스트를 추가하여 end to end 테스트를 진행
누락된 엣지 케이스 음수 금액 입력시 예외 처리 테스트 코드 및 로직 추가
constants에 에러 관련 메시지 추가 직관적이지 못한 메서드명을 직관적이게 수정 getWinBonusNum -> getWinNumInfo
Random 모듈에 문제가 있을 경우를 위한 테스트 코드 작성
Random 모듈에 문제가 있을 경우 Lotto 객체에서 직접 예외처리를 하도록 구현
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
개인 도전 목표
현재 상황
요구 사항을 완료한 이후 몇가지 고려할 점이 생겼습니다.
고려되는 부분
만약 로또 금액이 500원이 아니라 1000원으로 바뀌어도 괜찮은가사용자가 로또 금액 단위의 금액을 입력하지 않으면 예외처리가 과연 맞는가로또 숫자가 0~100까지 가능하게 바뀔 수 있는가로또가 5개의 숫자가 아니라 6개의 숫자를 뽑아도 괜찮은가여기에 더해서 현재 코드가 그 동안 지켜왔던 규칙을 지키고 있는지도 확인 해야 한다.
함수의 길이가 15줄을 넘어가는가들여쓰기 depth가 3을 넘어가는가각각의 모듈의 테스트 코드를 잘 작성했는가테스트 코드에서 잡지 못하는 엣지 케이스가 있는가도전 목표
목표 1
로또 조건이 변경되도 실행될 대응이 가능한 코드를 만들자
constants.js의 수정을 통해 변경에 용이한 구조를 만들자목표 2
그 동안 지켜왔던 JavaScript 코드 규칙을 지켰는지 확인하자
if/else지양목표 3
완료 항목
기본 구현 사항
[ERROR]를 포함한 메시지와 함께 해당 부분부터 다시 입력 받는다.도전 사항
Random모듈이 문제가 생길 경우 예외 처리 진행App.test.js- 정상 입력 엔드 투 엔드 테스트 추가User.test.js- 부족한 금액의 경우 테스트 추가Lotto.test.js-Random모듈이 문제가 생겼을 경우를 위한 테스트 추가if/else문 제거