gtest & gmock

はじめに

C++練習の一環でUnit testツールのgtestとgmockを使って簡単な例を書いてみた.

インストール

google/googletest · GitHub

gtest

~/Downloads ❯❯❯ ./googletest
~/D/gtest-1.7.0 ❯❯❯ mkdir build
~/D/gtest-1.7.0 ❯❯❯ ./build
~/D/g/build ❯❯❯ cmake ..
~/D/g/build ❯❯❯ make
~/D/g/build ❯❯❯ sudo cp -r ../include/gtest /usr/local/include/
~/D/g/build ❯❯❯ sudo cp lib*.a /usr/local/lib

gmock

~/Downloads ❯❯❯ ./googlemock
~/D/gmock-1.7.0 ❯❯❯ mkdir build
~/D/gmock-1.7.0 ❯❯❯ ./build
~/D/g/build ❯❯❯ cmake ..
~/D/g/build ❯❯❯ make
~/D/g/build ❯❯❯ sudo cp -r ../include/gmock /usr/local/include/
~/D/g/build ❯❯❯ sudo cp lib*.a /usr/local/lib

サンプル

#include <gtest/gtest.h>
#include <gmock/gmock.h>
#include <vector>

int add(int x, int y) {
        return x + y;
}

TEST(AddTest, Test1) {
        ASSERT_EQ(2, add(1, 1));
        std::vector<int> a{1, 2, 3};
        std::vector<int> b{1, 2, 3};
        ASSERT_THAT(a, ::testing::ContainerEq(b));
}

コンパイルでオプションを指定すればmain関数は要らない. 最初にソースファイルを指定しないといけない.

~/D/temp ❯❯❯ clang++  gtest_test.cpp -std=c++11 -lgtest -lgtest_main -lgmock