첫째, C++ 단위 테스트 도구의 원조 CppUnit 는 무료 오픈 소스 단위 테스트 프레임워크입니다. 많은 전문가들이 CppUnit 에 관한 좋은 문장 들을 많이 썼기 때문에, 노나는 지금도 못생기지 않다. CppUnit 에 대해 알고 싶다면 CppUnit 테스트 프레임워크 소개를 살펴보는 것이 좋습니다. 문장 역시 CppUnit 다운로드 주소를 제공합니다.
C++ 테스트
그런 다음 Parasoft 의 제품인 C++테스트를 소개합니다. C++test 는 모든 C/C++ 함수 및 클래스를 자동으로 테스트하고, 테스트 케이스, 테스트 구동 함수 또는 스텁 함수를 자동으로 생성하는 강력한 자동화 C/C++ 단위 레벨 테스트 도구로서, 자동화 환경에서 단위 레벨 테스트 적용 범위를 100% 에 빠르고 쉽게 달성할 수 있습니다. 【】 의 글은 화당 회사의 웹 사이트에서 인용한 것이다. 노나는 c++ 테스트에 관한 글을 쓰려고 했지만 화당사 홈페이지에서 소개를 넘어설 수 없다는 것을 알게 되어 번거로움을 덜었다. C++ 테스트를 알고 싶은 친구는 회사 홈페이지에 가보자고 제안했다. C++ 테스트는 화당 회사의 대리인이다. 만약 당신이 견적과 평가판을 구매하거나 요청하고자 한다면, 당신은 그들에게 연락할 수 있습니다.
시각 단위
마지막으로 국내 단위 테스트 도구인 Visual Unit 을 소개했다. 많은 특허를 출원했고, 여러 가지 혁신적인 기술이 있지만, 노나는 유용한지, 유용한지 여부에만 관심이 있다고 한다. 테스트 코드는 자동으로 생성되고, 기능 테스트 사용 사례가 신속하게 설정되고, 프로그램 동작이 명확하고, 테스트 무결성이 높으며, 화이트박스 커버리지를 효율적으로 완료하고, 효율적인 디버깅, 테스트 보고서 상세 정보를 신속하게 디버깅합니다. [] 의 텍스트는 VU 개발자 웹 사이트에서 발췌한 것입니다. 위에서 언급한 테스트 요구 사항: 기능 테스트 완료, 전체 명령문 적용, 조건 적용, 분기 적용, 경로 적용, VU 를 사용하면 쉽게 구현할 수 있습니다. 또한 VU 를 사용하면 코딩 효율성을 높일 수 있다는 점도 주목할 만하다. 일반적으로 단위 테스트를 완료하는 동안 코딩 디버깅 시간을 크게 줄일 수 있습니다. 됐어, 더 이상 얘기하고 싶지 않아. 나는 여전히 나의 이론을 과시하고, 나의 경험을 소개하는 것에 흥미가 있다. 왜냐하면 내가 좋은 선생님이 되는 허영심을 만족시킬 수 있기 때문이다. 그러나 도구의 소개는 재미없다. 결국, 도구가 좋은지 아닌지, 내가 시도해 봐야 알 수 있다. 직접 개발자 사이트에 가보시는 게 좋을 것 같아요. 데모판과 데모 코스웨어를 다운로드할 수 있어요.
Gtest
Gtest 테스트 프레임워크는 다양한 플랫폼 (Linux, Mac OS X, Windows, Cygwin, Windows CE, Symbian) 에서 C++ 테스트를 작성하기 위해 생성됩니다. XUnit 아키텍처 기반의 테스트 프레임워크로서 자동 검색 테스트, 풍부한 어설 션 세트, 사용자 정의 어설 션, 사망 테스트, 치명적 및 치명적이지 않은 장애, 유형 파라메트릭 테스트, 테스트 실행을 위한 다양한 옵션 및 XML 테스트 보고서를 지원합니다. 더 많은 친구들이' 구글유닛 테스트 프레임워크 gtest 시리즈' 기사를 참고할 수 있다. 주니트
JUnit 은 Java 커뮤니티에서 가장 유명한 단위 테스트 도구입니다. 에리히 감마와 켄트 베이커가 개발한 1997 에서 태어났습니다. 그 중에서도 Erich Gamma 는 고전 저서' 디자인 패턴: 재사용 가능한 객체 지향 소프트웨어 기반' 의 저자 중 한 명으로 Eclipse 에 큰 기여를 했다. Kent Beck 은 익스트림 프로그래밍 (XP) 의 전문가이자 선구자입니다. JUnit 은 디자인은 작지만 기능은 매우 강하다. Junit-반복 가능한 테스트를 작성하고 실행할 수 있는 소스 코드를 개발하기 위한 Java 테스트 프레임워크입니다. 이것은 xUnit 테스트 (Java 언어) 를 위한 프레임워크 시스템의 예입니다. 주로 화이트 박스 테스트 및 회귀 테스트에 사용됩니다.
JUnit 의 이점 및 JUnit 단위 테스트 작성 원칙
장점: 테스트 코드는 제품 코드와 분리할 수 있습니다. 한 클래스의 테스트 코드를 다른 클래스의 테스트에 적용할 수 있습니다. 약간의 수정만 하면 됩니다. JUnit 과 Ant 의 조합은 테스터의 구축 과정에 쉽게 통합되어 증분 개발을 가능하게 합니다. JUnit 은 재개발 가능한 오픈 소스 코드입니다. JUnit 은 쉽게 확장할 수 있습니다.
작성 원칙: 테스트 프레임워크 학습 및 실제 테스트 단위 작성을 포함한 테스트 작성을 단순화합니다. 테스트 단위의 지속성을 유지하는 것입니다. 기존 테스트를 사용하여 관련 테스트를 작성할 수 있습니다.
JUnit 사용 도움말.
버전 1 및 junit3.x 에서는 일반적으로 JUnit 3.8 을 사용합니다.
(1) junit3.x 버전 3.x 를 사용하여 단위 테스트를 수행하는 경우 테스트 클래스는 TestCase 상위 클래스에서 상속해야 합니다.
(2) 시험 방법이 따라야 할 원칙:
첫째, 공공
B, 유효하지 않음
C, 메서드 매개 변수 없음
메서드 이름은 test 로 시작해야 합니다.
(3) 서로 다른 테스트 케이스는 완전히 독립적이어야 하며 어떠한 연관도 있어서는 안 된다.
(4), 테스트 방법의 순서를 파악하려면 테스트 방법의 실행 순서에 의존해서는 안 된다.
돔:
공용 클래스 TestMyNumber 는 TestCase {
개인 MyNumber myNumber
Public TestMyNumber (문자열 이름) {
슈퍼 (이름);
}
//각 테스트 메서드가 실행되기 전에 호출됩니다.
@ 덮어쓰기
공용 void 설정 () 으로 인해 예외 {
// System.out.println (단위 테스트를 위해 Junit 에 오신 것을 환영합니다 ...);
Mynumber = newmynumber ();
}
//각 테스트 메서드가 실행된 후에 호출됩니다.
@ 덮어쓰기
Public void tearDown () 에서 예외 발생 {
// System.out.println(Junit 단위 테스트 종료 ...);
}
Public void testDivideByZero() {
Throwable te = null
시도 {
Mynumber.divide (6,0);
Assert.fail (테스트 실패);
} catch (예외 e) {
E. printstacktrace ();
Te = e;;
}
Assert.assertequals (exception.class, te.getclass ());
Assert.assertEquals (제수는 0, te.getmessage () 가 될 수 없음);
}
}
2.junit4.x 버전
(1), 단위 테스트를 위해 JUnit 버전 4.x 를 사용할 때 test 클래스가 TestCase 상위 클래스를 상속할 필요가 없습니다. JUnit 버전 4.x 에는 작성한 테스트를 수행하기 위해 Annotation 이 완전히 도입되었기 때문입니다.
(2), JUnit 버전 4.x, 주석 참조 방법, 단위 테스트 수행
(3), JUnit 버전 4.x 우리가 일반적으로 사용하는 참고 사항:
A.@Before 참고: junit3.x 의 setUp () 메서드처럼 각 테스트 메서드 이전에 실행됩니다.
B, @After 참고: junit3.x 의 tearDown () 메서드 함수와 마찬가지로 각 테스트 메서드 이후에 실행됩니다.
C.@BeforeClass 참고: 모든 메서드가 실행되기 전에 실행됩니다.
D, @AfterClass 참고: 모든 메소드 실행이 완료된 후에 실행됩니다.
E, @Test(timeout = XXX) 참고: 일정 기간 동안 실행되도록 현재 테스트 방법을 설정합니다. 그렇지 않으면 오류가 반환됩니다.
F, @Test(expected = Exception.class) 참고: 테스트된 메서드에 예외가 발생했는지 여부를 설정합니다. 발생한 예외 유형은 Exception.class; 입니다.
G, @Ignore comment: 테스트 메서드 또는 클래스에 주석을 달면 주석 처리된 메서드 또는 클래스가 실행되지 않습니다.
돔:
패키지 com.an.junit;
정적 org.junit.assert. *;
Org.junit.after 를 가져옵니다.
Org.junit.afterclass 를 가져옵니다.
Org.junit.before 를 가져옵니다.
Org.junit.beforeclass 를 임포트합니다
Org.junit.test 를 가져옵니다.
공용 클래스 테스트 mynumber {
개인 MyNumber myNumber
@BeforeClass
//모든 방법이 실행되기 전에 실행됩니다.
공용 정적 void globalInit() {
System.out.println(init all 메서드 ...);
}
@ 수업 후
//모든 방법을 수행한 후 실행합니다.
Public static void global destory () {
System.out.println(destory all 메소드 ...);
}
@ 이전
//각 테스트 방법 이전에 실행
공용 void 설정 () {
System.out.println (부팅 설정 방법);
Mynumber = newmynumber ();
}
@ 이후
//각 테스트 방법 이후에 실행됩니다
공용 void 제거 () {
System.out.println(end tearDown 메서드);
}
@Test(timeout=600)// 제한된 테스트 방법의 실행 시간을 설정하고, 초과하면 오류를 반환합니다.
공용 void testAdd() {
System.out.println(testAdd 메서드);
Intresult = mynumber.add (2,3);
AssertEquals(5, 결과);
}
@ 테스트
Public void testSubtract() {
System.out.println (testsubtract 메서드);
Intresult = mynumber.subtract (1,2);
AssertEquals(- 1, 결과);
}
@ 테스트
Public void testMultiply() {
System.out.println (testmultiply 메서드);
Intresult = mynumber.multiply (2,3);
AssertEquals(6, 결과);
}
@ 테스트
Public void testDivide() {
System.out.println(testDivide 메서드);
Intresult = 0;
시도 {
Result = mynumber.divide (6,2);
} catch (예외 e) {
Fail ();
}
AssertEquals(3, 결과);
}
@Test (예상 = Exception.class)
Public void testDivide2 () 에서 예외 발생 {
System.out.println(testDivide2 메서드);
Mynumber.divide (6,0);
실패 (테스트 오류);
}
공용 정적 void main(String[] args) {
}
}
관심 있는 친구는 내려와 자세히 연구하거나 앤의 DIY 공방 블로그에 가서 함께 토론할 수 있다.
JUnit-addons
JUnit 에 대한 추가 정보 (예: 설정, 테스트된 객체의 개인 속성 값 가져오기, 테스트된 객체의 개인 메서드 호출 등).
공용 클래스: junitx.util.PrivateAccessor
Spring 테스트 프레임워크
Spring 을 기반으로 응용 프로그램을 테스트하고 프로파일과 주석을 통해 필요한 단위 테스트 개체를 자동으로 어셈블할 수 있습니다.
HttpSession 의 시뮬레이션 클래스와 같은 일반적인 J2EE 시뮬레이션 객체를 제공합니다.
장치 테스트 (삽입, 삭제 등) 를 방지하기 위해 자동 데이터베이스 롤백을 지원할 수 있습니다. ) 가 중복되어 데이터베이스 상태가 수정되지 않도록 합니다.
주니트
시뮬레이션 객체는 코드에 의해 자동으로 생성되므로 n 개 이상의 시뮬레이션 클래스를 수동으로 작성할 필요가 없습니다.
또한 Eclipse 플러그인은 적용 범위 및 분기 통계를 테스트할 수 있습니다.
EasyMock
DJUnit 과 마찬가지로 기능은 프로그래밍을 통해 테스트 객체와 무관한 클래스 및 메서드를 자동으로 시뮬레이션합니다.