首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GMOCK参数验证

GMOCK参数验证
EN

Stack Overflow用户
提问于 2015-02-10 19:35:53
回答 1查看 548关注 0票数 1

我有一个类,其成员数组类型为int。

代码语言:javascript
复制
// Class Defenition
class Foo {
     int array[5];
     // ... Other Memebers
}

使用具有Foo*类型参数的成员函数的另一个类

代码语言:javascript
复制
class SerialTXInterface {
 public:
    virtual bool print_foo(Foo* strPtr) = 0;
    // ... Other Members
};

模拟上述方法:

代码语言:javascript
复制
MOCK_METHOD1(print_str_s, bool(Array_s<char>* strPtr));

SerialTX接口

代码语言:javascript
复制
SerialTXInterface* STX = &SerialTXObject;

Foo对象

代码语言:javascript
复制
Foo FooObj;

函数调用

代码语言:javascript
复制
STX.print_foo(&FooOjb)

如何验证Foo成员array5 == {1、2、3、4、5}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-10 22:06:12

这对我有用(如果我让Foo::array公开的话)

代码语言:javascript
复制
#include <gtest/gtest.h>
#include <gmock/gmock.h>

using namespace testing;

class Foo {
public:
    int array[5];
    // ... Other Memebers
};

class SerialTXInterface {
public:
    virtual bool print_foo(Foo* strPtr) = 0;
    // ... Other Members
};

class SerialTXMock {
public:
    MOCK_METHOD1(print_foo, bool(Foo* strPtr));
};

TEST(STXUser, Sends12345)
{
    SerialTXMock STXM;
    EXPECT_CALL(STXM, print_foo(Pointee(Field(&Foo::array,ElementsAre(1,2,3,4,    5)))));
    Foo testfoo = {{1,2,3,4,5}};
    STXM.print_foo(&testfoo);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28440328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档