Я бы предположил, что вы можете использовать регулярное выражение для проверки формата. C++ 11 имеет функцию специально для этого. Ниже приведен пример, адаптированный от cplusplus.com, но вы можете разработать более сложное решение для проверки таблицы очень точно.
C++ 11
#include <string>
#include <regex>
std::string s = "|some|sort|of|table|row|"
std::regex r = "" // Matching regex
ASSERT_TRUE(std::regex_match(s, r))
Кроме того, можно разделить (с использованием std::string::find()
и std::string::substr()
here, как указано) таблицу для проверки отдельных значений с чем-то вроде ASSERT_EQ(parsed_value, exp_value)
Меньше Цель Комментарий:
Я обнаружил, что у google test есть инструменты для почти всего. Оценочные тесты, которые вы упомянули, на самом деле чрезвычайно универсальны. (Несколько неизбежная) работа заключается в том, чтобы манипулировать данными для доступных тестов, что означает экстраполяцию данных и характеристик, которые вас волнуют, и представления их макросам ASSERT_ * и EXPECT_ *.