상세 컨텐츠

본문 제목

stringCalculatePOJO(1) - IntelliJ에서 Test 디렉토리 생성

백엔드 공부진행도/연습 코드

by myeongjaechoi 2025. 2. 14. 16:17

본문

지난 시간에 했던 것을 잘 완성하지 못하여 조금 더 쉬운 문제로 바꾸었다.

https://github.com/myeongjaeking/StringCalculator

 

GitHub - myeongjaeking/StringCalculator: 문자열 사칙연산 계산기

문자열 사칙연산 계산기. Contribute to myeongjaeking/StringCalculator development by creating an account on GitHub.

github.com

스프링 입문을 위한 자바 객체 지향의 원리와 이해 라는 책을 3회독 완료하고 다시 하는 것이기 때문에 전보단 더 잘할 것이다!!!

프로그램 전체 흐름은

나쁘지 않지 않은가?!?! 고민 많이하고 만들었다... 최대한 OOP와 SOLID를 지키려고 하였다.

이제 구상은 끝났으니 코드를 작성해보겠다.

test 코드는 최상위 디렉토리에서 Open Module Settings 

위 과정을 거치면 인텔리제이에서 테스트 코드를 작성할 수 있다.

@Test
@DisplayName("입력 문자열아 비어있을 때 예외발생")
void testValidNullInput(){
    //Given
    String testInput = "\n";
    setInput(testInput);
    InputHandler input = new InputHandler();

    //When
    IllegalArgumentException exception = assertThrows(IllegalArgumentException.class,()->{
        input.inputValidation.validateInput();
    });

    //Then
    Assertions.assertEquals(INPUT_NOT_NULL.getMessage(),exception.getMessage());
}

현재 이 코드의 문제점은 이미 InputHandler()를 생성한 시점에서부터 검증을 하기 때문에 exception을 불러오기 전에 미리 선언돼서 테스트가 정상적으로 통과하지 못했다. 그래서 exception이 발생한 시점에서 인스턴스를 생성하였다.

@Test
@DisplayName("입력 문자열아 비어있을 때 예외발생")
void testValidNullInput(){
    //Given
    String testInput = "\n";
    setInput(testInput);
    
    //When
    IllegalArgumentException exception = assertThrows(IllegalArgumentException.class,InputHandler::new);

    //Then
    Assertions.assertEquals(INPUT_NOT_NULL.getMessage(),exception.getMessage());
}

테스트를 잘 넘겼다.

최대한 OOP와 SOLID를 지키기 위해

디렉토리 구조를 아래 사진으로 하였다.

자세한 코드는 깃허브를 보면 될 것이다.

관련글 더보기