first demo for gtest

first demo for gtest

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!!

你可能感兴趣的:(first demo for gtest)