Мне приходится сталкиваться с неприятностями при кодировании моих модульных тестов, используя UnitTest ++. Мне интересно, как получить доступ к частным классам классов чистым способом (или, возможно, любым способом...)
В настоящее время у меня есть решение для доступа к защищенным элементам, используя элемент класса, полученный из тестируемого класса. Следующий код показывает идею:
struct MyFixture : ClassUnderTest { };
TEST_FIXTURE(MyFixture, OneTest)
{
do_something();
CHECK(protected_field == true);
}
Тем не менее, я думаю, что это не очень чисто, потому что проблемы, связанные с наследованием, могут возникать в некоторых конфигурациях, и, во всяком случае, только защищенные члены могут быть доступны и протестированы.
Я попытался объявить тестовые классы как friends, но поскольку они были созданы специальным способом с помощью UnitTest ++, я еще не успел это сделать.
Кто-нибудь знает, как сделать тестовые классы друзьями из тестируемых классов?
Есть ли другой способ приблизиться к этой проблеме по-другому?
Спасибо всем заблаговременно.