1. TDD의 개념
Test Driven Development의 약자이다.
테스트 주도 개발을 의미하는 것으로 개발을 할 때 테스트 케이스를 함꼐 개발하면서 개발하는 것이다.
빠른 시점에서 피드백을 받을 수 이는 유용한 도구이다.
JUnit이란 Java에서 독립된 단위테스트를 지원해주는 프레임워크이다.
2. 생성
메이븐 프로젝트를 개발할때 TDD를 이용하여 단위테스트를 진행하고자 한다.
먼저 메이븐 프로젝트를 생성한다.
(1) File > New > others... > Maven Project 생성
프로젝특 생성이 되면 src/test/java 경로에 SpringTest.AopTest (AopTest: 아티팩트 아이디)가 생성이 됐다.
(2) Properties > Java Build Path > Libraries > Maven Dependencies > junit 라이브러리가 있는지 확인한다.
(3) TestCase를 상속 받은 AppTest.java를 실행하면 Junit에서 제공하는 심플 테스트 앱을 실행하고 그결과를 Junit탭에서 확인 할 수 있다.
Run > Run As > JUnit Test
테스트가 성공했다는 초록색 바가 뜬다.
만약 틀린 값을 반환한다면 붉은색 바가 뜨며 실패가 출력된다.
* assertTure(E) : E가 참인지 확인하는 함수이다.
3. 후기
자동 생성된 Simple Test에는 인스턴스화 될때 생성자가 실행되면서 객체의 초기화를 한다. 그 때 자신의 생성자만 실행이 되는것이 아니고, 부모의 생성자부터 실행된다. (TestCase Class)
그 외에 TestCase 상속받지 않는 클래스를 테스트 할 경우에는
@Test 어노테이션을 선언하여 테스트를 수행할 수 있는데 junit은 각각 테스트가 서로 영향을 주지 않고 독립적으로 실행됨을 원칙으로 @Test마다 객체를 생성한다.
@Test가 메소드 위에 선언되면 이 메소드는 테스트 대상 메소드임을 의미한다.
각종 어노테이션을 이용한 테스트 방법과 assert 메소드는 추후 기능별로 정리할 예정이다.