일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- tomcat
- Spring Cloud
- springboot
- Spring
- maven
- loadcomplete
- tortoise SVN
- Java
- JSP
- Maven Project
- NextJs
- Next.js
- Windows 10
- BRIN
- HTML Special Entity
- PG-Strom
- STS
- exit code = -805306369
- orioledb
- Can't load AMD 64-bit .dll on a IA 32-bit platform
- graph database
- PostgreSQL
- NestJS
- 서브라임 텍스트
- HTML Code
- typeorm
- Spring Boot
- OGM
- Eclipse
- MariaDB
- Today
- Total
Undergoing
JUnit의 개요 본문
* Reference : JUnit in Action, Second Edition(국내번역판)
JUnit은 자바 프로그래밍 언어로 짜여진 유닛 테스팅 프레임워크로, 테스트 주도 개발(TDD. Test-Driven Development)에서 중요하게 여겨진다. 자동화 테스트를 위한 전용 프레임워크의 필요성을 중히 여긴 에릭 감마와 켄트 벡이 제작하였다.
* Framework : 거의 완성된 애플리케이션. 여러 애플리케이션에서 공유할 수 있는 재활용 가능하고 보편적인 구조를 제공함. 응집성 높은 구조를 제공한다는 점에서, 단순 유틸리티 클래스의 집합인 툴킷과 구분
JUnit은 오픈소스 소프트웨어로, http://www.junit.org 에서 다운로드 받을 수 있다. But Myeclipse를 설치했다면 기본적으로 내장되어 있다. 원래 단위 테스트는 작업의 한 단위의 동작을 검사하는 테스트를 일컫는 말이었으나 시간이 흐르면서 '독립적인 하드웨어나 소프트웨어 단위 혹은 관련 단위들의 집합에 대한 테스트' 로 정의가 확대되었다. 현재 많이 사용되는 JUnit은 3.8 버전과 4버전이 존재하는데, 각각 특징이 있다.
- JUnit 3.8
. Testcase를 상속받는다.
. 테스트 메소드의 이름은 반드시 'test'로 시작한다.(Ex. testaddnumber())
- JUnit 4
. java 5 이상에서 사용할 수 있다.
. junit.framework.Testcase를 상속하지 않는, 독립된 클래스로 구성된다.
. org.junit.*와 org.junit.Assert.*를 import한다.
. 주석을 사용하여 처리한다. 한층 유연해짐
사용 예는 다음과 같다.
CalulatorTest |
import static org.junit.Assert.asserEquals; import org.junit.Test; public class CalculatorTest { @Test public void testtAdd() { Calculator calculator = new Calculator(); double result = calculator.add(1,1); assertEquals(2, result, 0); } } |
테스트 검증에는 JUnit의 Assert 클래스에 정의된 assert 메서드를 사용한다. assert 메서드는 아래 목록에.
assertXxx 메서드 | 사용 목적 |
assertArrayEquals("message", A, B) |
배열 A와 B가 일치함을 확인 |
assertEquals("message", A, B) |
객체 A와 B가 일치함을 확인. B를 파라미터로 하여 A의 equals() 메서드를 호출함 |
assertSame("message", A, B) |
객체 A와 B가 같은 객체임을 확인. |
assertTrue("message", A) |
조건 A가 참임을 확인 |
assertNotNull("message", A) |
객체 A가 null이 아님을 확인 |
* assertEquals는 객체의 '값' 을, assertSame은 객체 자체가 일치함을 확인한다.
JUnit의 핵심 객체들은 다음과 같다.
JUnit 개념 |
역할 |
Assert |
테스트하려는 조건을 명시. assert 메서드는 조건이 만족되면 겉으로 드러나지 않으나, 만족되지 않으면 예외를 던짐 |
Test | @Test 애노테이션이 부여된 메서드. 하나의 테스트를 뜻함. |
Test Class |
@Test 메서드를 포함한 클래스 |
Suite | 여러 테스트 클래스를 하나로 묶는 수단을 제공 |
Runner |
테스트를 실행시킴. |
* TDD 개요에 대한 간단한 이해 : http://blog.naver.com/kimig82?Redirect=Log&logNo=80121320519
* JUnit 설치와 테스트 : http://blog.naver.com/fsclub2307?Redirect=Log&logNo=130134723640
'개발 > TDD' 카테고리의 다른 글
Test Code 작성 규율 (0) | 2012.06.27 |
---|---|
Controller Component 작성 - 3 (0) | 2012.06.11 |
Controller Component 작성 - 2 (0) | 2012.06.11 |
Controller Component 작성 - 1 (0) | 2012.06.11 |