c-字符串处理功能的自动测试



我已经编写了一个等待用户char输入的控制台应用程序。

应用程序具有以下功能:

typedef char *ProcessedDataType;
extern ProcessedDataType askUserInput(void){
int i = getchar();
ProcessedDataType local_var = userInputProcessed(i);
return ProcessedDataType;
}
static ProcessedDataType userInputProcessed(int i){
...
return PocessedDataType;
}

现在,我想为几个输入测试这个函数。因此,在用户输入时光标通常会闪烁的地方,现在,自动返回包含选择字母的文件中的条目。然后将针对已知结果断言这一点。

runTest{
// when console gets input 'A'
ProcessedDataType local_var = askUserInput();
assert('ProcessedA' == local_var);        }
// when console gets input 'B'
ProcessedDataType local_var = askUserInput();
assert('ProcessedB' == local_var);        }
// when console gets input 'C'
ProcessedDataType local_var = askUserInput();
assert('ProcessedC' == local_var);        }

在测试时,如何向该函数提供相同的字符串参数?如何向控制台"馈送"输入A、B、C等。。。

我不想在这里使用预处理器:如何对涉及IO的c函数进行单元测试?

除了"getchar"只会收集一个字符之外。。。。因此,我用"getchars"方法替换了这个方法,但您最终可以用实际需要的方法替换。

您将需要在测试中模拟收集用户输入的方法。

#define getchars mockgetchars
const char* expected;
char mockgetchars() {
return expected;
}
expected = "AAAAAAAn";
ProcessedDataType local_var = askUserInput();
assert("AAAAAAA", local_var);

最新更新