Tag: mocking

包装abort()系统调用时出现奇怪的行为

我需要编写单一测试来包装abort()系统调用。 这是一段代码: #include #include #include extern void __real_abort(void); extern void * __real_malloc(int c); extern void __real_free(void *); void __wrap_abort(void) { printf(“=== Abort called !=== \n”); } void * __wrap_malloc(int s) { void *p = __real_malloc(s); printf(“allocated %d bytes @%p\n”,s, (void *)p); return p; } void __wrap_free(void *p) { printf(“freeing @%p\n”,(void *)p); return __real_free((void *)p); } […]

如何对涉及IO的c函数进行unit testing?

我在将unit testing写入涉及IO操作的C函数时面临问题。 例如,下面是我编写的代码,用于从控制台获取用户的输入字符串。 我不知道如何使用getchar()函数自动测试用户输入。 char * GetStringFromConsole() { char *strToReturn = NULL; int len = 128; strToReturn = (char*)malloc(len); if (strToReturn) { int ch; char *ptr = strToReturn; int counter = 0; for (; 😉 { ch = getchar(); counter++; if (counter == len) { strToReturn = realloc(strToReturn, len*=2 ); ptr = strToReturn + counter-1; […]