[Spring 3.1] 스프링과 테스트
웹 애플리케이션을 제작하고 제대로 동작하는지 테스트하려면 어떻게 해야 할까?
특정 기능을 테스트하기 위해 해당 테스트와 연계된 서비스, 컨트롤러, 뷰, 웹 서버 환경을 모두 구축해야 테스트 할 수 있다.
여기서 테스트가 실패한다면?
테스트하려는 특정 기능에서 오류가 발생했는지, 아니면 다른 연계된 기능에서 오류가 발생했는지 확인하기 전에 알 수 없다.
즉, 웹 서버를 띄워서 테스트하는 경우 디버깅 비용이 매우 많이 발생한다.
테스트하려는 대상이 명확한 경우 그 대상에만 집중해서 테스트를 진행하는 편이 합리적이다.
이렇게 작은 단위의 코드에 대해 진행하는 테스트를 단위 테스트라고 부른다.
자바는 JUnit 테스트 프레임워크를 제공해 개발자가 단위 테스트를 쉽게 진행할 수 있도록 도와준다. (개발의 전반적인 구조를 지원하기 때문에 라이브러리가 아니라 프레임워크이다)
스프링 프레임워크도 JUnit 프레임워크를 사용해서 만들어졌다. 그만큼 유용하니 테스트 작성 시 꼭 사용하자.
아래는 테스트 관련 생각거리이다.
1. 네거티브 테스트 (edge case) 를 먼저 고려하자.
2. 테스트 주도 개발을 고려하자.
3. 테스트 코드를 리팩토링 대상으로 고려하자.
4. 테스트에 사용되는 자원을 최적화하는 작업을 고려하자.
5. 테스트와 운영에 사용되는 자원을 쉽게 분리시키는 작업을 고려하자.
6. 학습 테스트 코드를 통해 기술의 사용 방법을 배우자. (책이나 문서를 보며 실습해보자. 스프링의 테스트 코드를 참고하자)
스프링은 문서만 가지고 공부해서는 이해하고 익히기 힘들다.
스프링의 개념을 배우고, 연관된 테스트 코드를 작성해서 배운 대로 동작하는지 확인하는 작업을 통해 스프링에 익숙해지자.
'Spring > Spring 3.1' 카테고리의 다른 글
[Spring 3.1] Aspect Oriented Programming (0) | 2023.04.28 |
---|---|
[Spring 3.1] 트랜잭션과 서비스 추상화 (0) | 2023.04.23 |
[Spring 3.1] 스프링과 예외처리 (0) | 2023.04.20 |
[Spring 3.1] 템플릿과 콜백 (0) | 2023.04.19 |
[Spring 3.1] 관심사의 분리와 스프링 (0) | 2023.04.13 |
댓글
이 글 공유하기
다른 글
-
[Spring 3.1] 트랜잭션과 서비스 추상화
[Spring 3.1] 트랜잭션과 서비스 추상화
2023.04.23 -
[Spring 3.1] 스프링과 예외처리
[Spring 3.1] 스프링과 예외처리
2023.04.20 -
[Spring 3.1] 템플릿과 콜백
[Spring 3.1] 템플릿과 콜백
2023.04.19 -
[Spring 3.1] 관심사의 분리와 스프링
[Spring 3.1] 관심사의 분리와 스프링
2023.04.13