给定一个正在测试的函数,该函数可以执行以下操作:
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;
}如何编写单元测试以使模拟函数:
例:
void test_funcUnderTest()
{
char* testBuf="Hello World";
someReadFunc_ReturnArrayThruPtr_buf(testBuf,12) // Copy "testBuf" into "buf"
//How do we control return value?
funcUnderTest();
}发布于 2020-06-20 12:40:58
您可以通过组合多个期望来配置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“函数。
https://stackoverflow.com/questions/60868822
复制相似问题