Ответ
Нет реальной причины для непосредственного тестирования аргументов командной строки. Вместо этого напишите свои модульные тесты, чтобы проверить поведение вашего кода (функций и классов) с различными аргументами. Как только вы убедитесь, что ваш код работает должным образом в модульном тесте, просто подключите его к main
, и он также должен работать там же.
Разъяснение
Представьте, что у вас есть модульный тест для аргумента конструктора std::string
.
TEST(SomeTest)
{
std::string file("this is some command line argument");
CHECK(something);
}
Затем подключите его к main
.
int main(int argc, char** argv)
{
std::string file(argv[1]);
// do stuff....
return 0;
}
Поскольку с аргументом командной строки ничего не должно случиться, прежде чем он будет передан конструктору, вы уже эффективно протестировали его . Если, с другой стороны, ваш main
- беспорядок, я бы предложил сначала сделать рефакторинг.