0% found this document useful (0 votes)
67 views13 pages

GoogleTest 1.10.0 GCC MinGW Windows

You are on page 1/ 13

GoogleTest 1.10.

0 Dengan GCC MinGW


https://stackoverflow.com/questions/5248237/how-to-compile-googletest-on-windows-using-mingw-
with-msys

https://medium.com/swlh/google-test-installation-guide-for-c-in-windows-for-visual-studio-code-
2b2e66352456

https://www.programmersought.com/article/79594784118/

Tools

Dependensi : Python 2.7

Kompiler C++ : GNU GCC MinGW 8.1

C++ Editor : Code Blocks 20.03

Persiapan : Instal Python 2.7

Semua pilihan jangan ada yang bertanda ‘X’


1. Build GoogleTest 1.10.0 dengan CMake

Tulis : cmake -G “MinGW Makefiles” -S C:\gtes110\googletest-1.10.0_sumber -B C:\gtes110\googletest-


1.10.0_tujuan

Build sukses

2. Kompilasi Source Code GoogleTest 1.10.0


Tulis mingw32-make

Kompilasi akan menghasilkan file2 static library dengan model Linux (file .a)

3. Instalasi GoogleTest 1.10.0

Copy folder gtest

Paste di C:\mingw64\include
Copy folder gmock

Paste di C:\mingw64\include

Copy semua file itu

Paste di C:\mingw64\lib
4. Menulis Kode Untuk Uji Coba GoogleTest 1.10.0

triangle.h

#ifndef __TRIANGLE_H_

#define __TRIANGLE_H_

int TypeOfTriangle(int, int, int);

#endif

triangle.cpp

#include "triangle.h"

/*

nilai balik

1 : untuk segi 3 sama sisi

2 : untuk segi 3 sama kaki

3 : untuk sisi tidak sama panjang

0 : segi 3 gagal dibuat

-1 : semua sisi salah */

int TypeOfTriangle(int a, int b, int c) {

if(a < 0 || b < 0 || c < 0) { return -1; }

if( !(a + b > c && b + c > a && a + c > b) ) { return 0; }

else if(a == b && b == c) { return 1; }

else if(a == b || b == c || c == a) { return 2; }

else { return 3; } // a != b && b != c && c != a

return 0;

}
main.cpp

#include <iostream>

#include <gtest/gtest.h>

#include "triangle.h"

namespace {

TEST(TriangleTest, InvalidSides) {

EXPECT_EQ(-1, TypeOfTriangle(-10, 20, 30));

EXPECT_EQ(-1, TypeOfTriangle(10, -20, 30));

EXPECT_EQ(-1, TypeOfTriangle(3, 4, -8));

TEST(TriangleTest, NonFormation) {

EXPECT_EQ(0, TypeOfTriangle(10, 20, 30));

EXPECT_EQ(0, TypeOfTriangle(3, 4, 8));

TEST(TriangleTest, Equivalateral) {

EXPECT_EQ(1, TypeOfTriangle(10, 10, 10));

EXPECT_EQ(1, TypeOfTriangle(5, 5, 5));

TEST(TriangleTest, Isoceles) {

EXPECT_EQ(2, TypeOfTriangle(10, 9, 15));

EXPECT_EQ(2, TypeOfTriangle(15, 10, 10));

EXPECT_EQ(2, TypeOfTriangle(10, 15, 10));

}
TEST(TriangleTest, Scalan) {

EXPECT_EQ(3, TypeOfTriangle(3, 4, 5));

EXPECT_EQ(3, TypeOfTriangle(10, 12, 15));

EXPECT_EQ(3, TypeOfTriangle(10, 25, 18));

int main(int argc, char *argv[]) {

testing::InitGoogleTest(&argc, argv);

return RUN_ALL_TESTS();

Compile semua file .cpp. Sewaktu compile file main.cpp akan ada error yang menunjuk ke baris #include
<gtest/gtest.h>. Yaitu fatal error: <gtest/gtest.h>

5. Konfigurasi GoogleTest Di Code Blocks 20.03

Klik Build options… atau dengan cara klik kanan prog_tes  Build options
Di bawah prog_tes, ada mode Debug & Release. Setting di masing2 mode. Uncheck semua pilihan di
bagian General tanpa kecuali
Di masing2 mode, Debug & Release, tambahkan –lgtest
Di masing2 mode, Debug & Release, masukkan lokasi folder gtest. Pada dokumen ini, folder gtest
berlokasi di C:\mingw64\include
Di masing2 mode, Debug & Release, masukkan lokasi file libgmock.a, libgmock_main.a, libgtest.a,
libgtest_main.a. Pada dokumen ini, file2 tsb berlokasi di C:\mingw64\lib

Tutup layar dialog dengan klik OK. Compile lagi file main.cpp, jika tidak ada masalah, klik Build  Build

Proses build tidak ada masalah. Lanjut ke Build  Run


Gambar menunjukkan konfigurasi GoogleTest 1.10.0 berhasil

6. Contoh Lain

#include <cstdio>

#include <gtest/gtest.h>

int add(int a, int b) {

return a + b;

TEST(addtest, HandleNonZeroInput) {

EXPECT_EQ(14, add(4, 10));

EXPECT_EQ(-2, add(-3, 1));

}
int main(int argc, char *argv[])

testing::InitGoogleTest(&argc, argv);

return RUN_ALL_TESTS();

return 0;

Selesai

Created By : C++ Coder Di Jakarta

You might also like