1. 首先給出第一個運用gtest的demo
#include "stdafx.h"
#include "gmock/gmock-actions.h"

using namespace testing;

class Calculate


{
public:

Calculate()
{}

long add(long a,long b)
{return a+b;}
};

class CalculateMock:public Calculate


{
public:

CalculateMock():Calculate()
{}
MOCK_METHOD2(add,long(long a,long b));
};

long testFun(Calculate& cal)


{
return cal.add(2,3);
}
TEST(testMock,testAdd)


{
CalculateMock obj;
long len = 10;
ON_CALL(obj,add(2,3)).WillByDefault(Return(len));
EXPECT_CALL(obj,add(2,3)).Times(1);
//obj.add(2,3);
EXPECT_EQ(10, obj.add(2,3));
}

int _tmain(int argc, _TCHAR* argv[])


{
testing::InitGoogleMock(&argc, argv);
RUN_ALL_TESTS();
return 0;
}


做第一個demo需要注意的事項:
1. 將用到的gtest,gmock,和你自己運用的project用同樣的code generation 的形式一致,將 project property->C++->Code Generation: 設置為:Multi-threaded Debug(/MTd)
2. 添加 using namespace testing, 否則會出現‘Return’Identifier not found.這樣的錯誤
So excited to make it work after so much confusion, anxiety.
Fighting!!