返回Gmock中的数组的指针

问题描述 投票:0回答:1

我有一个函数uint32_t* GetArrayPointer() {},该函数将指针返回到uint32的数组。稍后在我的代码中,我将遍历该数组并对值进行一些计算。现在我想在测试中模拟该功能。所以我这样做

MOCK_METHOD0(GetArrayPointer,uint32_t*())

在我的测试中

Uint32_t testArray[6] = {...}
EXPECT_CALL(mockObject,GetArrayPointer()).WillRepeatedly(Return(testArray));

FunctionCall()...

但是使用此代码,我遇到了段错误。

如何将指针返回到我的testArray

googletest googlemock
1个回答
0
投票

代码对于将数组作为指针返回看起来不错,因为当将数组作为函数的参数传递给数组时,它将衰减为指针。

我猜函数uint32_t* GetArrayPointer()是全局函数,不允许模拟函数,我们需要创建一个包装函数来包装它。

相关链接:How can I effectively test against the Windows API?

© www.soinside.com 2019 - 2024. All rights reserved.