토비의 스프링 3.1 정독기 - 테스트

문지은·2021년 9월 13일
0

토비의 스프링

목록 보기
2/6

스프링 부트의 핵심이라고도 볼 수 있는 테스트! 테스트를 안 쓰고 스프링 개발을 진행한다면 그건 반쪽짜리 스프링 개발자로 볼 수 있다.

💡 테스트의 장점

  1. 테스트를 자동화할 수 있다. -> 빠르게 테스트가 가능하다

  2. 전체 코드를 작성하지 않아도 메소드 하나라도 테스트가 가능하다

  3. 리팩토링 시 유용하다. -> 코드 일부분을 고쳤을 때 잘 작동하는지 빠르게 확인 가능하다

  4. 결과가 맞는지 일일히 확인할 필요가 없다.

❗️ 테스트 주의할 점

테스트는 언제 어디서 실행하더라도 같은 결과가 나와야 한다.
또한 테스트는 너무 포괄적이어서는 안된다. 문제가 생겼을 경우 어느 파일의 어느 메소드에서 생긴 문제인지 정확히 알아야 하기 때문이다.

🧚‍♀️ TDD

이렇게 중요한 테스트를 개발자들은 잘 동작하는 부분만 테스트하거나 일부분만 테스트하고 넘어 가기도 한다. 아무리 다음 기능 구현으로 넘어가고 싶더라도 테스트를 빼먹으면 나중에 중대한 오류로 커질 수 있다. 그렇기에 자주 테스트를 할 수록 좋다.

그래서 등장한 것이 바로 TDD! TDD를 사용하면 실패하는 테스트 케이스들까지 빼먹지 않고 개발이 가능하다.

💻 테스트 코드의 개선

테스트를 여러번 진행하다 보면 코드가 겹칠 수 있고 이것은 객체 지향에 있어서 최악의 코드라고 볼 수 있다. 이를 위해서 어노테이션을 이용한다.

  • @Before : @Test가 실행되기 전에 실행된다.

  • @After : @Test가 실행된 후에 실행된다.

또한 필요한 오브젝트는 DI를 받기도 한다. 이 때도 어노테이션을 이용한다.

  • @Autowired : 해당 변수에 할당 가능한 타입을 가진 빈을 자동으로 찾는다. 같은 타입이 여러개인 경우에는 이름이 일치하는 빈을 주입하며 이 경우에도 같은 이름이 여러개일 경우에는 예외를 던진다.

✍️ 학습 테스트

우리가 새로운 API나 프레임워크를 사용하려면 해당 기능을 어떻게 작성하는지 알아야 한다. 여기서 우리는 학습을 위해서 테스트를 이용하기도 한다.

profile
백엔드 개발자입니다.

0개의 댓글