Googletest 使用gmock编写单元测试

Googletest 使用gmock编写单元测试,googletest,googlemock,Googletest,Googlemock,考虑以下情况 class A { public: bool Init() { bool ret = false; /* code */ return ret; } }; A a_obj; class B { public: bool Foo() { if(a_obj.Init()) { cout<&l

考虑以下情况

class A
{
   public:
      bool Init()
      {
         bool ret = false;
         /* code */
         return ret;
      }
};

A a_obj;

class B
{
   public:
      bool Foo()
      { 
         if(a_obj.Init())
         {
            cout<< "X" ;
         }
         else
         {
            cout<< "Y" ;
         }
      }
}

class MockA
{
   public:
      METHOD0(Init, bool());
};

TEST(InitTest, CallFoo)
{
MockA mockobj;
B b_obj;
/* ???*/
}
A类
{
公众:
boolinit()
{
bool-ret=假;
/*代码*/
返回ret;
}
};
A_obj;
B类
{
公众:
布尔福()
{ 
if(a_obj.Init())
{

cout
A
不必是
B
的成员-它可以作为参数传递给
Foo()
,默认值为
A_obj

// A definition as before
A a_obj;

class B
{
   public:
      bool Foo(A& a = a_obj)
      { 
         if(a.Init())
         {
            cout<< "X" ;
         }
         else
         {
            cout<< "Y" ;
         }
      }
}
//定义与前面一样
A_obj;
B类
{
公众:
bool Foo(A&A=A_obj)
{ 
if(a.Init())
{
库特