FrontPage
GoogleMock?(gMock)導入手順 †
- サイトよりダウンロード http://code.google.com/p/googlemock/
- Cygwinを起動して、フォルダ作成.フォルダ配下にダウンロードしたファイルを置く。
mkdir gmock
- gmockをコンパイルして、gmock-all.oを作る。
cd /cygdrive/c/src/gmock
./configure
make
- インクルード・パス(-I)で以下のパスを指定
/cygdrive/c/src/gmock/include
/cygdrive/c/src/gmock
- 以下のオブジェクトをテスト対象のオブジェクトにリンクする
/cygdrive/c/src/gmock/src/gmock-all.o
- ースファイル(RunAllTests?.cpp)を./tests配下に以下のように作成
#include "gtest/gtest.h"
#include "gmock/gmock.h"
int main(int argc, char* argv[])
{
::testing::InitGoogleTest(&argc, argv);
::testing::InitGoogleMock(&argc, argv);
return RUN_ALL_TESTS();
}
- RunAllTests?.cppとgtest-all.o gmock-all.oを一緒にコンパイルして、exeファイル作成
MakefileのSample †
# gcc を指定 C++も gccでコンパイルできるのが暗黙のルール
CC = gcc
CPP = g++
# 各マクロを定義して、ディレクトリの場所を教える
PRJ_BASE_DIR = /cygdrive/c/****任意*****
SRC_DIR = $(PRJ_BASE_DIR)/src
TESTS_DIR = $(PRJ_BASE_DIR)/tests
MOCK_DIR = $(PRJ_BASE_DIR)/mock
GTEST_ROOT = /cygdrive/c/src/gtest
GMOCK_ROOT = /cygdrive/c/src/gmock
# インクルードファイル
LOCAL_INCLUDE = $(PRJ_BASE_DIR)/hogehoge.h
# GoogleTest では 以下の2つが必須
LOCAL_INCLUDE += $(GTEST_ROOT)
LOCAL_INCLUDE += $(GTEST_ROOT)/include
# GoogleMock では 以下の2つが必須
LOCAL_INCLUDE += $(GMOCK_ROOT)
LOCAL_INCLUDE += $(GMOCK_ROOT)/include
# ソースファイル
SRCS = $(SRC_DIR)/hogehoge.c
# テストファイル
TEST_SRCS = $(TESTS_DIR)/RunAllTest.cpp
TEST_SRCS += $(TESTS_DIR)/hogehogeTest.cpp
TEST_SRCS += $(TESTS_DIR)/mockTest.cpp
# モックファイル
MOCK_SRCS = $(MOCK_DIR)/mock.c
# OBJ: オブジェクトファイルをまとめるマクロ
# ${SRCS: .c=.o} は .c を .oへ変換するマクロ
OBJ = $(SRCS:.c=.o)
OBJ += $(TEST_SRCS:.cpp=.o)
OBJ += $(MOCK_SRCS:.c=.o)
# GoogleTest では 以下のgtest-all.oを一緒にコンパイル
OBJ += $(GTEST_ROOT)/src/gtest-all.o
# GoogleTest では 以下のgmock-all.oを一緒にコンパイル
OBJ += $(GMOCK_ROOT)/src/gmock-all.o
#コンパイル時のオプションを指定.CPPだとCPPFLAGSが暗黙のフラグ
CFLAGS = $(addprefix -I, $(LOCAL_INCLUDE))
CFLAGS += -g
CPPFLAGS = $(addprefix -I, $(LOCAL_INCLUDE))
#慣例として、 allをtargetに対して宣言する
TARGET = hoge
all:$(TARGET)
$(TARGET): $(OBJ)
$(CPP) -g $(OBJ) -o $(TARGET)
clean:
rm -rf *.o *.exe
clean2:
rm -rf *.o *.exe
make
GoogleMock? Sample †
GoogleMock? Sample †
最新の20件
2011-05-17
2011-10-19
2011-11-06
2012-09-05
2012-06-23
2012-03-10
2012-03-09
2012-02-16
2012-01-22
2012-01-21
2011-12-11
2011-12-07
2011-05-01
今日の7件
- counter: 1657
- today: 1
- yesterday: 0
- online: 1