我有两个数据成员的简单结构。
typedef struct
{
int32_t x;
int32_t y;
} MyStructType;
我有一个按值返回结构的函数。
MyStructType get_my_struct(void)
{
MyStructType test = { 1, 2 };
return test;
}
那么,如何使用cmocka模拟get_my_struct()
?
我尝试过
MyStructType get_my_struct(void)
{
return mock_type(MyStructType);
}
// or
MyStructType get_my_struct(void)
{
return mock_ptr_type(MyStructType*);
}
但是出现编译错误。
我读了the cmocka documentation for mock objects,但没有给我明确的答案。
答案 0 :(得分:0)
您可以取消引用模拟指针类型,
MyStruct get_my_struct(void)
{
return *mock_ptr_type(MyStructType*);
}
但是您需要确保will_return()不是NULL
。