우테코 프리코스 2주차

2주차 - 테스트

1주차 피드백에서 필요없는 파일은 깃에 관리할 필요가 없다는 이야기가 있었다.

  • .class 파일은 java코드로 생성되어서 관리할 필요가 없다!
  • .idea 폴더는 IntelliJ IDEA 가 자동 생성하므로 관리할 필요가 없다!
  • 실제로 .gitignore 을 확인해보니 class는 out/, idea는 .idea 로 잘 선언되어 있었다.


추가로 팁은 Ctrl + Alt + L 로 자동정렬을 제공하는 것이다.

그리고 JUni5 와 AssertJ 로 테스트 코드를 작성한다.

마지막으로 깃 커밋 컨밴션과 자바 컨밴션을 지켜주자!



해결 과정 - 자동차 경주

기능 요구 사항을 작성하고, 기능목록을 작성한 후 코드 작성을 시작하는 식으로 바꿨다!

다만, 기능목록 작성이 아직 익숙하지가 않아서 이 부분은 코드 구현을 하면서도 계속 수정을 했었다.

그리고 이름지정도 신경 써주는게 생각보다 머리아팠고, 깃 커밋을 각 기능구현마다 신경 써서 하는것도 조금 복잡했다고 생각한다.. 익숙해지자.

마지막으로 assertThatThrownBy().isInstanceOf(예외.class), assertThat().contains 등등 테스트 코드 작성에 필요한 기본적인 메소드들도 필수로 기억해두자

  • 범위 테스트하기 좋은 : assertThat(Arrays.stream(result).allMatch(v->v>=0 && v<=9)).isTrue();



기능목록

  • 0-9사이 랜덤 값을 생성한다. - NumberGenerator#createRandomNumbers()
  • 자동차 객체를 생성한다. - CarGenerator#CarGenerator()
  • (전진일시)자동차 위치를 기록한다. - Application#racing()
  • 제일 멀리 간 자동차들이 최종 우승자이다. - Referee#calculateCars()



기능 요구 사항

자동차의 전진 여부를 결정해야 한다. (0~9사이의 무작위 값을 구해서 4이상인지 판단)

전진 여부에 따라 자동차 위치를 기록해놔야 한다.


ex. 자동차 입력 pobi,woni,jun 에 회수 2일 때

1회) 5,2,7 값일 때 : pobi, jun 위치 ++

2회) 4,4,2 값일 때 : pobi,woni 위치 ++

최종 우승자 : pobi



마무리

생략

댓글남기기