小编ram*_*rhn的帖子

如何对涉及IO的c函数进行单元测试?

我在将单元测试写入涉及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;
            }

            if ((ch != EOF) && (ch != '\n') && (counter < len))
            {
                *ptr++ = ch;
            }
            else 
            {
                break;
            }

        }
        *ptr = '\0';
    }
    return …
Run Code Online (Sandbox Code Playgroud)

c io unit-testing mocking getchar

9
推荐指数
1
解决办法
1367
查看次数

标签 统计

c ×1

getchar ×1

io ×1

mocking ×1

unit-testing ×1