У меня есть Boost :: вариант, который содержит команды. Я пишу PathValidator
посетитель, который ведет себя в одну сторону для Create
команда и один путь для всех других команд. Вот как я тестирую. Мне нужно будет написать больше HelperVisitors, когда я добавлю больше тестов. Любые советы о том, как я могу сделать это более читабельным и менее многословным? Я использую C ++ 98. Или, может быть, вы думаете, что это нормально.
struct TestOneNodeInTreeHelper
{
explicit TestOneNodeInTreeHelper(TestPathValidator& test): _test(test)
{
}
void operator()(Create&) const
{
SyntaxTree::Create create;
_test.addNodeToSyntaxTree(create.nodes,"1");
PathValidator pathValidator(_test._accessorMock);
pathValidator(create);
EXPECT_EQ((int)_test._accessorMock->path.size(), 0);
}
template<class T> void operator()(const T&) const
{
SyntaxTree::Create create;
_test.addNodeToSyntaxTree(create.nodes,"1");
PathValidator pathValidator(_test._accessorMock);
pathValidator(create);
EXPECT_EQ((int)_test._accessorMock->path.size(), 0);
EXPECT_EQ(_test._accessorMock->path[0], "path1");
}
TestPathValidator& _test;
};
TEST_F (TestPathValidator, oneNodeInTree)
{
TestOneNodeInTreeHelper helper(*this);
boost::mpl::for_each<Command::types>(helper);
}
Задача ещё не решена.
Других решений пока нет …