0

我有一个包含两个数据成员的简单结构。

typedef struct
{
    int32_t x;
    int32_t y;
} MyStructType;

我有一个按值返回结构的函数。

MyStructType get_my_struct(void)
{
    MyStructType test = { 1, 2 };
    return test;
}

那么,如何get_my_struct()使用 cmocka 进行模拟呢?

我试过了

MyStructType get_my_struct(void)
{
    return mock_type(MyStructType);
}

// or

MyStructType get_my_struct(void)
{
    return mock_ptr_type(MyStructType*);
}

但我得到编译错误。

我阅读了模拟对象的 cmocka 文档,但它没有给我一个明确的答案。

4

1 回答 1

0

您可以取消引用模拟指针类型,

MyStruct get_my_struct(void)
{
    return *mock_ptr_type(MyStructType*);
}

但您需要确保 will_return() 不是NULL.

于 2019-04-26T20:13:27.497 回答