Предположим, что мы имеем следующий класс:Как проверить методы работы с тяжелыми структурами данных с помощью Google Test?
class Graph {
public:
Graph(int num_vertices, int num_edges, const EdgeList& edge_list)
: num_vertices_(num_vertices), num_edges_(num_edges), edge_list_(edge_list) { }
int GetNumberOfComponents() { ... }
private:
int num_vertices_;
int num_edges_;
EdgeList edge_list;
}
В файле gtest.cpp у меня есть что-то вроде этого:
#include "gtest/gtest.h"
TEST(Test, NumberOfComponentsTest) {
Graph graph(4, 3, {{1, 2}, {2, 3}, {1, 3}});
EXPECT_EQ(2, graph.GetNumberOfComponents());
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
Цель заключается в том, что проверить GetNumberOfComponents()
корректно работает с использованием фреймворка тестирования Google.
Но рассмотрим большой тестовый пример, например, если num_vertices = 1000
, number_edges = 100000
. Как написать такой тест в этом случае, если я не хочу жестко кодировать все ребра? ;)
Похоже, вы хотите, чтобы мы написали вам код. Хотя многие пользователи готовы создавать код для кодера, терпящего бедствие, они обычно помогают только тогда, когда плакат уже попытался решить проблему самостоятельно. Хорошим способом продемонстрировать это усилие является включение кода, который вы написали до сих пор, пример ввода (если есть), ожидаемого результата и выход, который вы фактически получаете (вывод консоли, трассировка и т. Д.). Чем больше деталей вы предоставляете, тем больше ответов вы получите. Проверьте [FAQ] и [ask]. –
Извините, что вы правы! Я отредактирую свой вопрос. – user3524337