[英]Can I use cmocka to mock a function that returns a struct?
I have a simple structure with two data members. 我有一个简单的结构,有两个数据成员。
typedef struct
{
int32_t x;
int32_t y;
} MyStructType;
And I have a function that returns the struct by value. 我有一个函数,通过值返回结构。
MyStructType get_my_struct(void)
{
MyStructType test = { 1, 2 };
return test;
}
So, how can I mock get_my_struct()
using cmocka? 那么,我如何使用cmocka模拟get_my_struct()
?
I tried 我试过了
MyStructType get_my_struct(void)
{
return mock_type(MyStructType);
}
// or
MyStructType get_my_struct(void)
{
return mock_ptr_type(MyStructType*);
}
but I get compile errors. 但我得到编译错误。
I read the cmocka documentation for mock objects , but it didn't give me a clear answer. 我阅读了模拟对象的cmocka文档 ,但它没有给我一个明确的答案。
You can dereference a mocked pointer type, 您可以取消引用模拟的指针类型,
MyStruct get_my_struct(void)
{
return *mock_ptr_type(MyStructType*);
}
but you need to make sure will_return() is not NULL
. 但是你需要确保will_return()不是NULL
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.