gpt4 book ai didi

c++ - 谷歌模拟 EXPECT_CALL 返回值

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:00 26 4
gpt4 key购买 nike

我在 C 中有以下代码想使用谷歌测试框架进行测试:

a.h

void getValue(int age, int * value);

a.c

#include <a.h>

void getValue(int age, int * value)
{
value[0] = 0;
value[1] = 1;
}

b.c

#include <a.h>

void formValue()
{
int value[2];
getValue(age, value);

/* the code to handle the value[] array */
/* for() */
}

我想测试文件 b 中的函数 void formValue(),所以我为 void getValue(int age, int * value) 创建了以下模拟): //AFileMock.hh #包括 #include "a.h"

class AFileMock {
public:
AFileMock();
~AFileMock();
MOCK_METHOD1(getValue, void(int, int *));
};

然后在测试文件中我想调用模拟函数 getValue 并返回 void getValue(int age, int * value) 部分的值,但是如何调用mock函数时返回值数组的传出参数?

#include "gmock/gmock.h"
#include "gtest/gtest.h"

#include <b.h>
#include <AFileMock.h>

using testing::_;
using testing::Return;
using testing::InSequence;

class BTest: public testing::Test {

protected:
AFileMock aFile;

public:
void SetUp() { }
void TearDown() { }
};


TEST_F(BTest, test1)
{
InSequence sequence;
EXPECT_CALL(aFile, getValue(_, _)).
Times(1); // when this mock function is called, how to return the value of the array?

formValue();
}

那么在这种情况下,调用mock函数时,如何返回数组的值呢?

最佳答案

我无法理解您的示例代码,a.c 甚至无法编译。但我猜你正在寻找的答案是 Gmock Actions . rich set其中提供了。

关于c++ - 谷歌模拟 EXPECT_CALL 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32204173/

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