JUnit
Eric
Gamma와
Kent
Beck이
1997년에
만들었다.
자바
프로그래밍
시 Unit테스트를
쉽게 해주는 프레임워크이다.
JUnit
테스트
코드를 수행하는 일반적인 방법
1.
이클립스
같은 IDE를
사용하여 수행
2.
텍스트
기반 커맨드 명령어를 사용하여 수행
3.
Swing 기반
테스트 수행 프로그램을 사용하여 수행 (4.x 버젼부터
지원 안함)
4.
Ant를
이용하여 수행
※
xUnit
이란? 어떤 언어를 막론하고, 단위
테스트를 하는데 도움을 주는 프레임워크를
통틀어서 xUnit 혹은 xUnit 테스트 자동화 프레임워크라고 부른다.
※
단위
테스트(Unit
Test)란? 프로그래밍 중 소스 코드의 특정 모듈이 의도대로
정확히 작동되는지
검증하는 절차이다.
JUnit 개념
Unit 개념
|
역할
|
Assert
|
테스트하려는
조건을 명시한다.
Assert()는
조건이 만족되면 그냥 지나가고,
만족되지
못하면 예외를 던진다.
|
Test
|
@Test
Annotation이
부여된 메소드로, 하나의
테스트를 뜻한다.
JUnit은
먼저 메소드를
포함하는 클래스의 인스턴스를
만들고,
주석
처리된
메소드를 찾아
호출한다.
|
Test 클래스
|
@Test
메소드를
포함한 클래스이다.
|
Suite
|
여러
테스트 클래스를 하나로 묶는 수단을 제공한다.
|
Runner
|
테스트를
실행시킨다.
JUnit 4는
하위 호환성을 가지므로
JUnit 3의
테스트도 실행할 수 있다.
|
assertXxx
메소드
assertXxx
메소드
|
사용목적
|
assrtArrayEqual("message",
A, B)
|
배열 A와 B가
일치함을 확인한다.
|
assertEquals("message",
A, B)
|
객체 A와 B가
일치함을 확인한다.
B를
파라미터로 A의
equals()를
호출한다.
|
assertSame("message",
A, B)
|
객체 A와 B가
같은 객체임을 확인한다.
( ==연산자사용 )
|
assertTrue("message",
A)
|
조건 A가 참(true)임을
확인한다.
|
assertNotNull("message",
A)
|
객체 A가
null이
아님을 확인한다.
|
테스트의
준비와 실행 그리고 정리
•setUp()
테스트 대상 클래스의 메소드 구조와
상관 없이 테스트 메소드가 실행되기
전에 수행된다.
코드 내에서 사용할 리소스를 초기화 할 때 이용한다.
(테스트 대상 클래스의 객체를 생성, 네트워크 연결 시작, DB에 연결)
•testXXX()
XXX는 테스트 대상 클래스의 메소드 이름이다.
모든 테스트 대상 메소드 이름은 test로
시작해야 한다.
이 메소드의 내에 assertXXX()를
이용하여 테스트 결과를 확인하는 작업을 수행한다.
•tearDown()
메소드는 각각의 테스트 메소드들이 실행되고
난 다음에 호출된다.
사용한 리소스를 정리할 때 이용한다.
(테스트 대상 클래스의 객체를 제거, 네트워크 연결 종료, DB 연결 종료)
테스트의
준비와 실행 그리고 정리 – 주석기반
방법
•메소드에
부여되는 Annotation (해당 메소드가 반드시 public이어야
한다)
@Before
- 이 Annotation이 부여된 메소드는 @Test
메소드가 호출되기
직전에 실행된다.
@Test
- 실제 테스트를 할 대상 메소드에 작성한다.
@After
- 이 Annotation이 부여된 메소드는 @Test
메소드가 호출된 후에
실행된다.
@Ignore
- 해당 메소드를 실행하지 않도록 한다.
※ 원한다면
여러 개의
@Before와
@After method를
정의할 수도 있지만, 이들
사이의 실행 순서를 정하는 방법은 없다.
•메소드에
부여되는 클래스 대상 Annotation (해당 메소드가 반드시 public이고 static이어야
한다.)
@BeforeClass
- 클래스 안에 정의된 모든
@Test method들이
수행하기 전 한번만
호출
@AfterClass
- 클래스 안에 정의된 모든
@Test method들이
수행된 후
한번만 수행
댓글 없음:
댓글 쓰기