gpt4 book ai didi

c++ - GMOCK 参数验证

转载 作者:行者123 更新时间:2023-11-30 05:47:54 25 4
gpt4 key购买 nike

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

// Class Defenition
class Foo {
int array[5];
// ... Other Memebers
}

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

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

模拟上述方法:

MOCK_METHOD1(print_str_s, bool(Array_s<char>* strPtr));

SerialTX接口(interface)

SerialTXInterface* STX = &SerialTXObject;

Foo 对象

Foo FooObj;

函数调用

STX.print_foo(&FooOjb)

如何验证 Foo 成员数组[5] == {1, 2, 3, 4, 5}

最佳答案

这对我有用(如果我将 Foo::array 公开)

#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);
}

关于c++ - GMOCK 参数验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com