gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 19:38:54 25 4
gpt4 key购买 nike

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

应用程序具有以下功能:

    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 等...

我不想使用预处理器,如下所示:How to unit test c functions involving IO?

最佳答案

除了明显的“getchar”只会收集一个字符......因此,我用“getchars”方法替换了此方法,但您最终可以替换为您实际需要的内容。

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

#define getchars mockgetchars

const char* expected;
char mockgetchars() {
return expected;
}

expected = "AAAAAAA\n";
ProcessedDataType local_var = askUserInput();
assert("AAAAAAA", local_var);

关于c - 自动测试字符串处理功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37398769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com