JUnit4 Tutorial
12842 단어 JUnit4
테스트 케이스 작성
JUnit 4 를 사용 하여 testcase 를 작성 하 는 것 은 더 이상 Testcase 류 를 계승 하 는 부담 이 없습니다.테스트 방법 에 [email protected] 만 추가 하면 됩 니 다.
@org.junit.Test
public
void
test1(){
//
ur test code here
}
@Test annotation 레이 블 을 추가 한 테스트 방법 은 여러 가지 가 있 습 니 다.그들 은 testcase 를 뛸 때 무질서 하 게 달 릴 것 이다.
하나의 클래스 의 Test 방법 이 초기 화 와 청 소 를 해 야 한다 면@Beforeclash,@AfterClass,@Before 와@After 라 는 몇 가지 표 시 를 사용 해 야 합 니 다.
@BeforeClass
public
void
overallInitial(){
//
This method will run ONCE and ONLY ONCE before all test methods in this class. Some initial works should be done here for all test methods in this class.
}
@Before
public
void
initalTestCase(){
//
This method run every time before for a test method. Test method level initial work should be done here.
}
@After
public
void
clearupTestCase(){
//
This method run every time after for a test method. Test method level clearup work should be done here.
}
@AfterClass
public
void
overallClearup(){
//
This method will run ONCE and ONLY ONCE after all test methods in this class. Some clearup works should be done here for all test methods in this class.
}
testcase 를 만 드 는 것 은 기본적으로 이렇게 간단 하 다.모든 것 을 표시 로 해결 하면 된다.
그리고 유용 한 표시 가 있 습 니 다.
testcase
@Ignore
(
"
This case is not supported yet
"
)
1s
@Test
(
timeout
=
1000
)
IOException
@Test
(
expected
=
IOException
.
class
)
Testcase 조직 및 실행
Testcase 를 작성 하고 나 면 보통 Testcase 를 Testsuite 로 구성 해 야 합 니 다.한 번 에 여러 개의 Testcase 류 를 뛸 수 있 습 니 다.JUnit 4 에서 Testcase 를 조직 하 는 방식 은 다양 하 다.
Annotation 으로
가장 쉬 운 것 은 역시 annotation 을 통 해.다음 클래스 는 Annotation 을 통 해 여러 Testcase 를 하나의 Suite 로 구성 하 는 것 입 니 다.
package
junit.testsuite;
import
junit.testcase.JUnitTestCase;
import
junit.testcase.TestCase2;
import
org.junit.runner.RunWith;
import
org.junit.runners.Suite;
@RunWith(Suite.
class
)
@Suite.SuiteClasses({ JUnitTestCase.
class
, TestCase2.
class
})
public
class
AllTestsUsingAnnotation {
}
위의 종 류 는 코드 가 필요 없 이 두 개 만 표시 하면 된다[email protected],@org.junit.runnes.Suite.@런 위 드 는 이런 종류 가 어떤 형태 로 달 릴 지 를 나타 낸다.뒤의 유형 은 반드시 Runner 인터페이스의 실현 이 어야 합 니 다.여기 서 Suite 로 지정 합 니 다[email protected] Classes 는 여러 개의 test unit 류 를 포함 할 수 있 습 니 다.
@Suite.Suite Classes 의 클래스 도 다른 TestSuite 를 지정 할 수 있 습 니 다.그러면 여러 개의 포 함 된 차원 이 있 습 니 다.그러나 그 중의 test unit 는 현재 클래스 를 간접 적 으로 포함 하거나 직접적 으로 포함 할 수 없 으 며,그렇지 않 으 면 순환 이 되 잖 아 요.
이 종 류 는 Eclipse 에서 바로 Run As JUnit Test 를 할 수 있 습 니 다.
TestSuite 수 동 으로 만 들 기
레이 블 을 사용 하지 않 으 면 TestSuite 를 수 동 으로 만 들 수 있 습 니 다.
package
junit.testsuite;
import
junit.framework.JUnit4TestAdapter;
import
junit.framework.Test;
import
junit.framework.TestSuite;
import
junit.testcase.TestCase3;
public
class
AllTestsUsingSuiteMethod {
public
static
Test suite() {
TestSuite suite
=
new
TestSuite(
"
Root Test
"
);
//
$JUnit-BEGIN$
suite.addTest(
new
JUnit4TestAdapter(TestCase3.
class
));
suite.addTest(
new
JUnit4TestAdapter(AllTestsUsingAnnotation.
class
));
//
$JUnit-END$
return
suite;
}
}
위의 클래스 는 TestSuite 를 만 들 었 고 TestSuite 에 두 개의 test unit 를 추가 했다.그 중 두 번 째 는 위 에 만 든 TestSuite 입 니 다.
TestSuite 에 중 복 된 testcase 가 있 으 면 하나만 실행 되 고 중 복 된 것 은 무 시 됩 니 다.
이 종 류 는 Eclipse 에서 바로 Run As JUnit Test 를 할 수 있 습 니 다.
테스트 케이스 실행
Eclipse 에서 실행 할 수 있 는 것 외 에 도 일반적인 프로그램 이나 명령 행 에서 도 실행 할 수 있다.
아래 코드 는 응용 프로그램 을 통 해 TestCase 를 달 리 는 것 입 니 다.결과 에 따라 필요 한 표 등 조직 적 인 보고 서 를 만 들 수 있다.
package
junit.testsuite;
import
junit.testcase.JUnitTestCase;
import
junit.testcase.TestCase2;
import
org.junit.runner.JUnitCore;
import
org.junit.runner.Result;
import
org.junit.runner.notification.Failure;
public
class
RunTestInMainApp {
public
static
void
main(String[] args) {
Result result
=
JUnitCore.runClasses(JUnitTestCase.
class
,
TestCase2.
class
);
for
(Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
}
}
명령 행 에서 도 비슷 한 방법 으로 달 릴 수 있다.
java org
.
junit
.
runner
.
JUnitCore junit
.
testcase
.
JUnitTestCase
,
junit
.
testcase
.
TestCase2