我有一个函数uint32_t* GetArrayPointer() {}
,该函数将指针返回到uint32
的数组。稍后在我的代码中,我将遍历该数组并对值进行一些计算。现在我想在测试中模拟该功能。所以我这样做
MOCK_METHOD0(GetArrayPointer,uint32_t*())
在我的测试中
Uint32_t testArray[6] = {...}
EXPECT_CALL(mockObject,GetArrayPointer()).WillRepeatedly(Return(testArray));
FunctionCall()...
但是使用此代码,我遇到了段错误。
如何将指针返回到我的testArray
?
代码对于将数组作为指针返回看起来不错,因为当将数组作为函数的参数传递给数组时,它将衰减为指针。
我猜函数uint32_t* GetArrayPointer()
是全局函数,不允许模拟函数,我们需要创建一个包装函数来包装它。