/java-baseball-precourse

숫자 야구게임 미션을 진행하는 저장소

Primary LanguageJavaMIT LicenseMIT

🛩프로젝트 소개

  • 우테코에서 제공하는 BaseBall 콘솔 게임 미션입니다
  • 미션을 바탕으로 TDD 학습을 목표로 공부하였습니다

미션내용

✔기능목록

컴퓨터

  • 컴퓨터가 랜덤숫자를 생성한다
  • 랜덤숫자는 1~9의 3자리 숫자다
  • 랜덤숫자는 모두 다른 숫자여야 한다

사용자

  • 사용자가 숫자를 입력한다
  • 입력한 숫자는 1~9의 3자리 숫자여야 한다
  • 입력한 숫자는 모두 다른 숫자여야 한다

Result

  • 컴퓨터 숫자와 사용자 숫자를 비교한다

OutputView

  • 스트라이크 볼 낫싱에 대한 상황에 따라 출력한다

Controller

  • 컴퓨터가 난수를 생성하도록 한다
  • 사용자가 숫자를 입력하도록 한다
  • Result를 사용하여 컴퓨터 숫자와 사용자 숫자를 비교한다
  • OutputView를 사용하여 결과를 출력한다
  • 재시작을 원하는 경우 1을 입력받아 재시작한다
  • 종료를 원하는 경우 2를 입력받아 종료한다

Exception

  • 에러 발생시 IllegalArgumentException()를 호출한다

❗궁금

  • 난수 생성같은 경우 여러번 실행시켜서 오차가 있는지 확인해야할때 테스트 코드안에서 반복문 어떻게 사용할까?

  • 기능에 대한 테스트?

    • test 코드로 먼저 구현하고!
  • 에러 던지는 상황 캐치는 어떻게?

    • assertion.assertThrows()로 같은 Error 클래스인지 확인 가능!
  • 책임 나눌때 어떻게 해야함? (클래스 분할하고 싶을때)

    • 테스트 코드로 먼저 작성한 뒤 돌아가면 리팩토링 진행
  • test 하고 싶은 예시들이 여러개이고 입력시켜주고 싶을 경우 어떻게?

    • @ParameterizedTest, @MethodSource()
      • 아 파라미터로 원하는 값을 넘겨주는 형식!!! 괜찮네
      • 참고
  • System.in 에 값을 넣으면 test 같이 돌릴때 문제 생김