加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何Google模拟从结构调用的方法

发布时间:2020-12-16 07:25:24 所属栏目:百科 来源:网络整理
导读:我们有这个例子: Class A{ public: int Get(); } 在另一个文件中: A a;struct B{ int res = a.Get(); } 我需要Google Mock Get方法,但是,我还需要调用真正的方法.我尝试了#ifdef,它似乎工作.然后我决定在#ifdef部分模拟它,但它什么也没做. #ifdef UNIT_TES
我们有这个例子:

Class A{
         public:
           int Get();
   }

在另一个文件中:

A a;
struct B{
    int res = a.Get(); 
}

我需要Google Mock Get方法,但是,我还需要调用真正的方法.我尝试了#ifdef,它似乎工作.然后我决定在#ifdef部分模拟它,但它什么也没做.

#ifdef UNIT_TEST
MOCK_METHOD0(A,Get);
#else
int A::Get(){....}
#endif

我究竟做错了什么?有没有更清洁的方法呢?拜托,任何帮助都会非常感激.

解决方法

你错了.这是应该如何做到的:

1)头文件:

struct A
    {
   #ifdef UNIT_TEST
       MOCK_METHOD0(Get,int());
   #else
       int Get();
   #endif
    };

2)源文件:

#ifndef UNIT_TEST
int A::Get()
{
  // ...
}
#endif

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读