11월 14일

Yullgiii·2023년 11월 14일
1
post-thumbnail

테스트 코드...

스프링에서의 테스트 코드 작성법 🚀

스프링에서 테스트 코드를 작성하는 방법은 다양하지만, 'given - when - then' 패턴을 사용하는 것이 일반적이다. 이 패턴을 사용하면 테스트의 목적과 결과를 명확하게 이해할 수 있다.

given: 테스트를 실행하기 위한 준비 단계. 테스트에 필요한 데이터를 설정한다.
when: 실제로 테스트할 로직을 실행하는 단계.
then: 테스트의 결과를 검증하는 단계.

@SpringBootTest
public class SomeServiceTest {

    @Autowired
    private SomeService someService;

    @Test
    public void testSomeMethod() {
        // given
        String input = "test input";

        // when
        String result = someService.someMethod(input);

        // then
        assertEquals("expected result", result);
    }
}

위 예제에서는 SomeService라는 서비스 클래스의 someMethod라는 메서드를 테스트하고 있다. 'given' 단계에서는 테스트에 필요한 입력값을 설정하고, 'when' 단계에서는 실제로 테스트할 로직을 실행한다. 그리고 'then' 단계에서는 테스트의 결과를 검증한다.
이때, JUnit은 자바에서 가장 널리 사용되는 테스트 프레임워크로, @Test 어노테이션을 통해 테스트 메서드를 정의한다. 그리고 AssertJ는 테스트 검증을 위한 라이브러리로, assertThat() 메서드를 통해 검증 대상을 명시하고, 이어서 호출하는 메서드(isEqualTo())를 통해 기대하는 결과를 검증한다.

2. 테스트 코드의 중요성 🚀

테스트 코드는 코드의 품질을 보장하고, 버그를 빠르게 찾아 수정할 수 있게 도와준다. 또한, 테스트 코드를 작성하게 되면 기능을 더 세밀하게 살펴보게 되므로 더 효율적인 코드를 작성할 수 있다. 이 외에도 테스트 코드는 코드의 가독성을 높이고, 리팩토링을 용이하게 하는 등 다양한 장점이 있다.

3. 에러와 해결법 🚀

스프링에서 테스트 코드를 작성하면서 자주 만나는 에러 중 하나는 'No qualifying bean of type' 에러다. 이 에러는 스프링이 특정 타입의 빈을 찾을 수 없을 때 발생한다.

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.SomeService' available

이 에러를 해결하는 방법은 다음과 같다.

  • 빈을 등록하는 어노테이션(@Service, @Repository, @Component 등)이 제대로 적용되어 있는지 확인한다.
  • 테스트 클래스에 @SpringBootTest 어노테이션을 추가하여 스프링 부트의 테스트 지원을 활성화한다.
  • @Autowired 어노테이션을 사용하여 의존성을 주입한다.

4. 회고 🚀

오늘의 학습을 통해 스프링에서 테스트 코드를 작성하는 방법과 그 중요성에 대해 다시금 생각해볼 수 있었다. 테스트 코드를 작성하면서 스프링이 제공하는 테스트 기능을 활용하면, 개발한 기능이 제대로 작동하는지 검증하고, 버그를 빠르게 찾아 수정할 수 있다는 것을 깨달았다. 또한, 테스트 코드를 통해 코드의 품질을 높이고, 유지보수를 용이하게 할 수 있다는 것을 알게 됐다

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글