본문 바로가기
까망 동네/TDD

Google Test (gTest) 실행해보기

by 까망 하르방 2022. 4. 2.
반응형

💻 Google Test란 무엇일까?

Google에서 만든 C++ Test Framework

• Windows / Linux 등 다양한 플랫폼 사용 가능

• xUnit 아키텍처 기반

 

📌 TDD (Test Driven Development) 란?

 

TDD (Test Driven Development)란?

「테스트 주도 개발」로 "테스트가 개발을 이끌어 나간다" ① [Red] 실패하는 테스트 코드 먼저 작성 ② [Green]테스트 코드를 성공시키기 위한 프로덕션 코드 작성 ③ [Black] 중복 코드 제거, 일

zoosso.tistory.com


 

💻 Google Test 환경 확인

Visual Studio에서 Google Test 사용할 수 있다.

Visual Studio 2017 (15.5 이상) 버전부터 공식 지원하고 있다.

* 필자의 현재 개발환경은 Visual Studio 2019

 

 

Visual Studio Installer 실행

[C++를 사용한 데스크톱 개발] - [Test Adapter for Google test] 항목 확인

* 해당 항목이 설치되어 있어야 한다.

Visual Studio InstallerTest Adapter for Google test


 

💻 Google Test 실행해보기

 

빈 프로젝트 생성

빈 프로젝트 생성

 

 

프로젝트 이름을 "gtest" 라고 이름지었다.

프로젝트 이름 작성

 

 

간단한 add() 함수를 구현해서 main 함수에서 실행해본다.

add 함수 구현

 

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 결과 확인

 


구글 테스트 목적은 main 함수를 사용하지 않고

add() 함수를 검증 해보는 것이다.

 

[솔루션 탐색기]에서 [솔루션] 우클릭

[추가] - [새 프로젝트]

google test 프로젝트 생성

 

 

"Google Test" 검색해서 선택

google test 선택

 

 

이번에는 "googleTest" 라고 이름 지었다.

프로젝트 이름 작성

 

 

main 테스트 했던 "gtest" 프로젝트 선택

프로젝트 연결

 

 

아래와 같이 [googleTest] 프로젝트가 생성되었다.

기본적으로 [pch.cpp], [pch.h], [test.cpp] 파일이 보인다.

생성 결과 확인

 

 

test.cpp 에서는 바로 실행해볼 수 있는 Base Code가 있다.

Base 코드

 

[테스트] - [테스트 탐색기]

테스트 탐색기 생성

 

 

아래와 같이 [테스트 탐색기] 창이 생긴다.

테스트 탐색기 창

 

 

[] 을 클릭하여 실행

테스트 시작 단축키 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] 하면 된다.

시작 프로젝트 설정

 

 

아래와 같은 결과를 확인할 수 있다.

main 결과 확인
반응형

'까망 동네 > TDD' 카테고리의 다른 글

[googletest] 테스트 픽스처(Test Fixture)란?  (0) 2022.04.12
[예시] TDD 방식으로 개발 해보기  (0) 2022.04.10

댓글