我有一个 C++11 项目,其中有许多 googletest 单元测试看起来像
TEST_F(GTest, testSomething) {
int64_t n = 42;
// following code depends on input size n
...
}
我希望能够从一个位置(最好是命令行)设置输入大小,而不是在每个测试中都有一个本地常量 n
:
./RunMyProgram --gtest_filter=* --n=1000
main
应该是这样的:
int main(int argc, char **argv) {
// TODO: parse command line argument n here
INFO("=== starting unit tests ===");
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
我应该用什么替换我的测试函数中的 ?
?
TEST_F(GTest, testSomething) {
int64_t n = ?;
// following code depends on input size n
...
}
最佳答案
首先,如果您在多个测试函数中使用相同的值/参数,请考虑使用夹具。
你试图为我做的事情看起来像一个“值参数化测试”。我想这在测试世界中相当普遍,而且- tadaa,Google Test 在其高级指南中有一章,称为 "Value Parameterized Test" (哦,它使用固定装置)。
关于c++ - 如何在多个单元测试中使用用户输入变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14360802/