비주얼 스튜디오에서 Google Test(구글 테스트) 프로젝트를 간단히 만들 수 있습니다. Google Test는 c++ 테스트 프레임워크입니다.

간단한 예제를 만들어서 테스트해보겠습니다.

 

참고로 C++11 이상 지원하는 컴파일러부터 사용 가능합니다 (google test requirements)

그리고 visual studio를 설치할 때 google test도 함께 설치한 상태여야 합니다. 설치하지 않았으면 Extension으로 설치하면 될겁니다 (아마도?;; 잘 모름)

 

먼저 빈 프로젝트를 하나 만들고 테스트 할 함수가 들어 있는 헤더를 만들어줍니다

그리고 Google Test 프로젝트를 하나 만들어줍니다.

 

다음으로 두 프로젝트 우클릭 - 속성 - 일반 - C++ 언어 표준을 C++17로 바꿔줍니다. C++11 이상이기만 하면 되는데 저는 C++17에 추가된 기능을 써볼 것이기 때문에 이렇게 하겠습니다.

 

#pragma once

template <typename... Args>
constexpr auto sum_all(Args... args) {
	return (args + ...);
}

header.hpp 파일에 c++17에 추가된 fold expression을 사용해 함수를 하나 만들어봤습니다. unary right fold입니다.

그냥 보면 문제가 없어보이는데요, 테스트를 해봅시다.

 

Google Test 프로젝트의 cpp 파일(pch 말고)에 위와 같이 아까 만들었던 헤더를 include 해주고, 테스트케이스를 작성해줍니다.

TEST(테스트케이스 이름, 테스트케이스) 이런식으로 적으면 되고, EXPECT_EQ, ASSERT_EQ 등의 assert문을 작성합니다. 추가적인 도움말은 Google Test primer, Google Test quick reference 등을 참고해주세요.

마지막으로 빌드하고 테스트를 실행해보면 완료입니다.

테스트 결과 parameter pack을 fold할 때 오버플로우가 발생한 모습입니다. 유닛테스트가 없었으면 발견하기 힘들었겠죠?

반응형

'프로그래밍 > C++' 카테고리의 다른 글

[C++] Array to Pointer Decay  (0) 2021.01.29
[C++17] std::any에 대해  (0) 2020.10.03
C++ RAII (Resource Acquisition is initialization)  (0) 2020.07.26
C++ std::thread  (0) 2020.07.25
C++ std::unique_ptr 2차원 배열 만들기  (0) 2020.07.17