【发布时间】:2020-07-23 09:48:40
【问题描述】:
我正在为我的应用程序开发一个命令行选项处理器。我决定使用 GTest 来测试它。它的实现如下所示:
int main(int argv, char **argv)
{
if (!ProcessOptions(argc, argv)
{
return 1;
}
// Some more code here
return 0;
}
int ProcessOptions(int argc, char **argv)
{
for (int i = 1; i < argc; ++i)
{
CheckOption(argv[i]);
CheckArgument();
if (Success)
{
EnableOption();
}
}
}
代码按预期运行,但问题是:我想通过提供不同的选项(有效和无效)来使用 GTest 对其进行测试。 GTest 手册内容如下:
::testing::InitGoogleTest()函数解析命令行 googletest 标志,并删除所有可识别的标志。这允许 用户通过各种标志来控制测试程序的行为,其中 我们将在 AdvancedGuide 中介绍。您必须先调用此函数 调用RUN_ALL_TESTS(),否则标志将无法正确初始化。
但是这样,我将只能测试一个序列。我想为不同的选项多次执行此操作。我该怎么做?
有没有更好的策略来实现这一目标?我可以使用测试夹具来做到这一点吗?
【问题讨论】:
-
你会有不止一项测试。其中一些会通过有效的选项。其中一些会传递无效的选项。有什么问题?您能向我们展示您目前的测试代码吗?
标签: c++ parsing googletest