[JAVA]JUnit
main method를 테스트 용도로 코드를 작성한다면 프로덕션 코드(Production Code)과 테스트 코드(Test Code)로 나뉜다.
프로덕션 코드(Production Code) : 프로그램 구현을 담당하는 부분으로 사용자가 실제로 사용하는 소스코드를 의미(클래스 구현)
테스트 코드(Test Code) : 프로덕션 코드가 정상적으로 동작하는지를 확인하는 코드 (메인 메소드)
main method 테스트의 문제점
- Production Code 와 Test Code 가 클래스 하나에 존재하므로 코드의 길이가 길어지고, 복잡도가 증가한다.
- Test Code가 실 서비스에 같이 배포된다.
- main method 하나에서 여러 개의 기능을 테스트하여 복잡도가 증가한다.
- 테스트 결과를 사람이 수동으로 확인해야 한다.
JUnit : 자바 언어를 사용하는 소프트웨어 개발에서 유닛 테스트를 작성하고 실행하는 데 사용되는 프레임워크로 main method를 활용해 테스트할 때 발생하는 문제점을 해결하여 코드의 품질을 향상시키기 위해 사용한다.
JUnit 에서 사용되는 대표적인 어노테이션
@Test : 테스트 메서드를 지정하여 테스트 케이스의 일부로 표시한다. @Test 어노테이션을 포함하는 메서드를 실행하고 해당 메서드에서 예외가 발생하면 테스트 실패로 표시한다.
@Before : 테스트 메서드 실행 전에 실행되어 설정작업을 수행하는 메서드를 지정한다. ex) 데이터 초기화나 리소스 설정등을 처리할 떄 사용한다.
@After : 테스트 메서드 실행 후에 실행되어 정리 작업을 수행하는 메서드를 지정한다. ex) 리소스 해제나 데이터 정리등을 처리할 때 사용한다.
static 으로 만들어져야 하며 리턴 타입은 void 이어야 한다.------------------------------------------------------------------------------------
@BeforeClass : 테스트 클래스에 있는 테스트를 실행하기 전 실행된다. ex) 클래스 수준의 설정 작업을 수행할 때 사용된다.
@AfterClass : 테스트 클래스에 있는 테스트를 모두 실행한 후에 한번만 실행된다. ex) 클래스 수준의 정리 작업을 수행할 때 사용한다.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------