c++ 단위테스트 예제

섹션 4에서는 단위 테스트 유지 관리에 대해 설명합니다. 단위 테스트를 거친 후에는 전체 소프트웨어 시스템을 제공하기 위해 클래스를 통합해야 합니다. 아래에서 Google C++ Mocking 프레임워크 사용 의 예를 볼 수 있습니다 시스템의 초기 통합 빌드는 몇 가지 완전히 테스트된 클래스 범주로 구성될 수 있으며 나머지 시스템은 시뮬레이션됩니다. 그런 다음 시스템의 이 부분에 대한 기능 테스트를 수행할 수 있으며 문제를 다림질할 수 있습니다. 후속 빌드가 점점 더 많은 시뮬레이션된 클래스를 실제 구현으로 대체하면서 통합이 진행됩니다. CodeLens가 초기화되면 각 단위 테스트 위의 테스트 상태 아이콘을 볼 수 있습니다. 첫 번째 줄은이 테스트의 이름을 선언하고, 두 번째 줄은 필요한 헤더 파일을 포함하고, 줄 4-6 정의 테스트 – BOOST_AUTO_TEST_CASE 매크로는 주어진 이름으로 테스트를 정의하는 데 사용됩니다 (simple_test), 테스트의 본문에 하나의 어설션이 포함되어 있습니다 : 2 + 2 = = 4 – 이 어설션은 이 어설션을 사용합니다. 부스트_CHECK_EQUAL 매크로를 사용하여 확인을 수행합니다. 구글 모의 프레임 워크는 위키로 사용할 수있는 꽤 좋은 문서를 가지고있다. 다음 문서에서 자습서를 찾을 수 있으며 쿡북, 치트시트 및 FAQ에서 자세한 내용을 찾을 수 있습니다. 이 섹션에서는 프레임 워크의 높은 수준의 개요에 집중 하 고 그것의 사용의 작은 예제를 제공할 것입니다. 나는 구글 모의 라이브러리가 이미 컴퓨터에 설치되어 있다고 가정합니다. 설비 – 단위 테스트 실행에 필요한 데이터/리소스의 설정 및 정리를 구현하는 데 사용되는 특수 개체입니다.

설비와 실제 테스트 코드 간의 코드를 분리하면 단위 테스트 코드를 단순화하고 다른 테스트 사례 및 테스트 도구 모음에 동일한 초기화 코드를 사용할 수 있습니다. C++를 만들 때 소프트웨어 테스트는 현재처럼 광범위하게 실행되지 않았습니다. 대부분의 경우 소프트웨어가 프로덕션 환경에 도달했을 때 테스트 단계가 시작되었습니다. 경험에 따르면 단위 테스트에 대한 양심적 접근 방식은 소프트웨어 개발 단계에서 많은 문제를 감지하여 경제적으로 해결할 수 있음을 보여주었습니다. 소프트웨어 개발의 이후 단계에서는 문제 의 탐지 및 수정이 훨씬 더 어렵고 시간이 많이 걸리며 비용이 많이 듭니다. 다음 섹션에서는 C++ 단위 테스트를 시작하는 기본 단계를 보여 주며, 이 단계는 다음과 같은 단계입니다. 기본 구성은 마이크로소프트와 구글 테스트 프레임 워크에 대 한 매우 비슷합니다. Boost.Test에서는 테스트 프로젝트를 수동으로 만들어야 합니다. 코드를 완료한 후 상단의 테스트 탭을 누르고 모든 테스트를 실행하도록 선택합니다. 오른쪽에는 각 테스트의 결과와 각 테스트의 시간이 표시됩니다. 두 개 이상의 테스트를 실행하려면 Test_Class에 Test_Method를 더 추가할 수 있습니다. 그러나 Test_Method 블록을 서로 나열할 수 없습니다.

결과로 발생하는 문제는 두 그룹으로 나뉩니다. 첫째, 클래스의 테스트는 철저해야 하지만 클래스의 개인 부분에 대한 가시성이 부족하면 일부 멤버 함수, 특히 개인 멤버 함수의 전체 적용 범위를 달성하기 어려울 수 있습니다. 이 백서의 2절에서는 이 문제를 설명하고 해결 방안을 제시합니다. 큰 개체 지향 시스템에서 소프트웨어는 일반적으로 일반적으로 일반적으로 클래스 범주라고 기능 관련 클래스의 집합으로 나뉩니다.