如何在 cmock 中为“读取”功能配置期望
Posted
技术标签:
【中文标题】如何在 cmock 中为“读取”功能配置期望【英文标题】:How to configure expectations in cmock for a "read" function 【发布时间】:2020-03-26 13:49:21 【问题描述】:给定一个正在测试的函数,它执行以下操作:
void funcUnderTest()
char buf[32];
int bufSize=32;
someReadFunction(buf, size);
int someReadFunction(char* buf, int size)
int readlen;
//loads buf with data
//returns number of bytes copied
return readlen;
如何编写我的单元测试,以便模拟函数:
-
用特定数据加载 buf
返回指定的 retval
例如:
void test_funcUnderTest()
char* testBuf="Hello World";
someReadFunc_ReturnArrayThruPtr_buf(testBuf,12) // Copy "testBuf" into "buf"
//How do we control return value?
funcUnderTest();
【问题讨论】:
【参考方案1】:您可以通过组合多个期望来配置 Mock 对象。它应该像这样工作:
void test_funcUnderTest()
char* testBuf="Hello World";
someReadFunc_ExpectAnyArgsAndReturn(retval) // Return "retval" on next call
someReadFunc_ReturnArrayThruPtr_buf(testBuf,12) // Copy "testBuf" into "buf" on the same call
funcUnderTest();
但请注意,此调用的顺序很重要。通常在定义特定参数的行为之前,您需要先调用“Expect”函数。
【讨论】:
以上是关于如何在 cmock 中为“读取”功能配置期望的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 中为自定义配置文件添加配置转换?
如何在 JS(jQuery) 中为翻译添加附加赋值(+=)?