💻 Google Test란 무엇일까?
Google에서 만든 C++ Test Framework
• Windows / Linux 등 다양한 플랫폼 사용 가능
• xUnit 아키텍처 기반
📌 TDD (Test Driven Development) 란?
💻 Google Test 환경 확인
Visual Studio에서 Google Test 사용할 수 있다.
Visual Studio 2017 (15.5 이상) 버전부터 공식 지원하고 있다.
* 필자의 현재 개발환경은 Visual Studio 2019
Visual Studio Installer 실행
[C++를 사용한 데스크톱 개발] - [Test Adapter for Google test] 항목 확인
* 해당 항목이 설치되어 있어야 한다.
💻 Google Test 실행해보기
빈 프로젝트 생성
프로젝트 이름을 "gtest" 라고 이름지었다.
간단한 add() 함수를 구현해서 main 함수에서 실행해본다.
main.cpp
#include <iostream>
#include "add.h"
using namespace std;
int main()
{
cout << "main 결과:" << add(2, 5) << endl; // 7
return 0;
}
add.cpp
#include "add.h"
int add(int a, int b)
{
return a + b;
}
add.h
#pragma once
int add(int a, int b);
실행해보면 아래와 같이 결과 확인이 가능하다.
구글 테스트 목적은 main 함수를 사용하지 않고
add() 함수를 검증 해보는 것이다.
[솔루션 탐색기]에서 [솔루션] 우클릭
[추가] - [새 프로젝트]
"Google Test" 검색해서 선택
이번에는 "googleTest" 라고 이름 지었다.
main 테스트 했던 "gtest" 프로젝트 선택
아래와 같이 [googleTest] 프로젝트가 생성되었다.
기본적으로 [pch.cpp], [pch.h], [test.cpp] 파일이 보인다.
test.cpp 에서는 바로 실행해볼 수 있는 Base Code가 있다.
[테스트] - [테스트 탐색기]
아래와 같이 [테스트 탐색기] 창이 생긴다.
[▶] 을 클릭하여 실행
테스트 시작 단축키 CTRL + R 누른 다음 A
• TestCaseName → Test Suite
• Test Name → Test
▶ 한 Test Suite에 여러개의 Test를 포함할 수 있음
▶ EXPECT_EQ(예상겨로가, 테스트 결과 값)
→ 두 결과값이 같아야 PASS
add() 함수를 테스트 해보는 코드를 작성해보자.
헤더파일을 include 한 후, 예상 결과값을 적는다.
#include "pch.h"
#include "../gtest/add.cpp"
TEST(BasicTest, PositiveAdd) {
EXPECT_EQ(5, add(2, 3));
EXPECT_EQ(2, add(1, 1));
}
fail 결과가 나오도록 테스트 추가해보자.
"1 + 1 = 2" 이지만 "5" 를 예상하도록 중간에 추가
#include "pch.h"
#include "../gtest/add.cpp"
TEST(BasicTest, PositiveAdd) {
EXPECT_EQ(5, add(2, 3));
EXPECT_EQ(5, add(1, 1));
EXPECT_EQ(2, add(1, 1));
}
[테스트 탐색기]에서 결과를 분석할 수 있다.
7번째 줄에서 예상결과는 2 이지만 기대값이 5 로 "2 ≠ 5" 잘못되었다고 한다.
[테스트 탐색기] 대신에 보다 빠르게 결과를 확인하고 싶은 경우
[google Test] 프로젝트가 먼저 시작되도록 설정한 후 [Run] 하면 된다.
아래와 같은 결과를 확인할 수 있다.
'까망 동네 > TDD' 카테고리의 다른 글
[googletest] 테스트 픽스처(Test Fixture)란? (0) | 2022.04.12 |
---|---|
[예시] TDD 방식으로 개발 해보기 (0) | 2022.04.10 |
댓글