오늘은 기초 개발을 마쳤으니 함수별 테스트를 작성해봤다.
테스트 코드를 연습해본 적은 있지만, 그것도 벌써 7-8개월 전 이야기였기 때문에 기억나는게 거의 없어 처음 해본 것이나 마찬가지였다.
메서드를 잘게 쪼개는 것은 성공했지만 막상 메서드별로 테스트 코드를 작성하려니 여간 어려운 게 아니었다.
그래서 결국은 Exception 패키지와 Service 패키지, Util 패키지의 함수별 테스트 코드만 작성을 할 수 있었다.
나의 목표는 패키지 안의 코드 파일 내부 메서드별로 모두 테스트 코드를 작성하는 것이었지만 아직 정형화된 테스트 코드 작성 형식조차 없던 나에겐 쉽지 않았기에, 선택과 집중을 했다.
그런데, 테스트 코드를 작성하며 차 이름과 관련된 테스트코드를 작성하며 통과되지 않는 테스트가 발생했다. 비상비상🚨
뱉어내지 않던 에러까지 발생되었다.
문제가 뭐지?하고 고민했다.
오랜 시간 고민하고 수정하면서 다음의 결론을 내릴 수 있었고 너무나 짜릿했다.
Exception/CarNameException.java
...
public class CarNameException {
private final StringToList stringToList = new StringToList();
private static final int MINIMUM_CARNAME_LENGTH = 1;
private static final int MAXIMUM_CARNAME_LENGTH = 5;
private static final String BLANK = " ";
...
public void validateCarNameInput(String carNameInput) throws IllegalArgumentException {
checkInputIsEmpty(carNameInput);
checkLastInputIsComma(carNameInput);
List<String> carNameList = stringToList.analysisCarNames(carNameInput);
checkCarNameIsOutOfRangeAndBlank(carNameList);
checkCarNameIsDuplication(carNameList);
}
이렇게 수정을 하고 드디어 테스트를 통과했다!!
그런데 너무 중구난방으로 테스트 개수를 늘려놔서 많이 줄여야 할 것 같다!!
테스트 코드 왜 작성해야하냐고 하면서 불만이 많았는데, 와 이것때문이구나 하고 유레카하는 오늘이었다.
정말 감사합니다 우테코🤩
🔼 함수별 테스트 작성하기
🔜 소감문 미리 작성해두기