우테코 프리코스 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
마무리
생략
댓글남기기