테스트 프로젝트의 .cpp 파일에는 테스트 코드를 작성하는 방법의 예로 정의된 스텁 클래스와 메서드가 있습니다. 서명은 TEST_CLASS 및 TEST_METHOD 매크로를 사용하므로 테스트 탐색기 창에서 메서드를 검색할 수 있습니다. “왜 유닛이 다른 유닛과 통합되어야 할 때 격리된 클래스를 테스트해야 하는가? 왜 실제 클래스를 사용하지?”. 잘 설계된 개체 지향 시스템에는 잘 구성된 클래스 계층 구조가 있어야 합니다. 따라서 가장 추상적인 클래스를 먼저 테스트하기 위해 단위 테스트를 계획한 다음 계층 구조를 진행하여 테스트된 각 새 클래스에 이미 완전히 테스트된 클래스만 필요하도록 해야 합니다. 이 간단한 단위 테스트 형식은 테스트 중인 클래스 외부에 있는 클래스를 시뮬레이션(스텁 아웃)할 필요가 없습니다. TEST_CLASS 및 TEST_METHOD는 Microsoft 네이티브 테스트 프레임워크의 일부입니다. 테스트 탐색기는 유사한 방식으로 지원되는 다른 프레임워크에서 테스트 메서드를 검색합니다. 섹션 4에서는 단위 테스트 유지 관리에 대해 설명합니다.

단위 테스트를 거친 후에는 전체 소프트웨어 시스템을 제공하기 위해 클래스를 통합해야 합니다. 이전 예제에서 Assert::AreEqual 호출의 결과는 테스트의 통과 또는 실패 여부를 결정합니다. Assert 클래스에는 예상 결과와 실제 결과를 비교하는 다른 많은 방법이 포함되어 있습니다. 봉쇄가 발생하는 실제 상황의 예로는 클래스가 특정 파일에서 데이터를 저장/검색하려는 경우이며, 이는 종종 클래스의 멤버를 파일 처리 클래스의 개체로 선언하여 달성됩니다. 이제 테스트에서 조롱클래스를 사용할 수 있습니다. 우리는 mholder라는 조롱 클래스의 인스턴스를 만들고, 그것에 대한 기대를 설정합니다. 첫 번째 기대는 함수 GetProperty 매개 변수 “테스트”와 함께 한 번 호출 됩니다 및 조롱 된 개체는이 호출에 대 한 101을 반환 해야 합니다. 두 번째 예상은 SetProperty 함수가 “test2” 및 555라는 두 개의 인수로 호출되도록 지정합니다. 기대치를 설정한 후 TestClass의 인스턴스를 만들고 조롱된 개체에 대한 참조를 전달합니다.

그리고 마지막 줄 – PropHolder 클래스의 함수를 사용하는 함수 doCalc의 호출 : 두 번째 문제 영역은 다른 프로그램 부분에서 격리된 클래스를 단위 테스트하는 것을 목표로합니다. 테스트를 위해 클래스를 격리하려면 다른 클래스를 시뮬레이션해야 합니다. 이 문제와 해결 방법은 섹션 3에서 설명합니다. 테스트 가능한 코드 작성에 대한 더 많은 조언은 다음 블로그 게시물에서 찾을 수 있습니다. 이 텍스트에서는 “자동” 테스트를 예로 사용하며 Boost.Test 설명서에서 수동 테스트 등록에 대해 읽을 수 있습니다. 테스트 프로그램이 초기화되면 실행 모니터는 명령줄 옵션을 분석하고 자체 구성에 속하는 모든 옵션을 제외합니다. 명령줄 옵션은 양식 –=<옵션 값]으로 지정됩니다(옵션 이름과 해당 값 사이에 공백 문자가 되어서는 안 됩니다).