Какую инфраструктуру модульных тестов C++ мне следует использовать для запуска тестов, связанных с libcurl?
Я написал код, который использует libcURL для получения информации с данной веб-страницы. Я хочу написать модульный тест для этого кода. Я пытался сделать это с помощью cmake, но столкнулся с множеством проблем. Есть ли другая структура, которая позволит мне сделать это более легко?
Ниже приведена подробная информация о проблемах, которые у меня возникли с cmake:
Ранее я отправлял тестовую веб-страницу на локальный хост, используя tinyweb как часть модульного теста. Затем я использовал несколько команд для ввода значений в мой код (который будет получать соответствующую информацию с локального хоста) и убивал tinyweb. Общая структура похожа на это:
Я столкнулся с рядом проблем. Как только команда для запуска tiny.exe будет выполнена, следующая строка ctest не будет запущена, пока tiny.exe не будет убит.
Ранее я пытался сделать что-то подобное, используя пакетные файлы, но tiny.exe был убит в непредвиденное время.
1 ответ
Для этого я бы порекомендовал gtest и gmock. Во-первых, если вы не контролируете веб-сайт, вы не можете гарантировать, что запрошенный вами контент будет существовать. Во-вторых, даже если веб-сайт существует, вы не можете гарантировать, что контент останется постоянным.
Итак 1) Настройте свой сайт на локальном хосте. Вы можете использовать gtest для этого. 2) Затем вы можете использовать gmock для имитации того, что вы ожидаете от сегодняшнего контента вашего сайта.
3) Вы также можете использовать макет Google для имитации сбоев DNS, проблем с подключением и т. Д. Но сейчас начнем с простого.