Как я могу шпионить за частными данными классов в модульном тесте в C ++ с GTEST?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу шпионить за частными данными классов в модульном тесте в C ++ с GTEST?

Сообщение Anonymous »

У меня есть класс, который содержит список других объектов, аналогичных ниже < /p>

Код: Выделить всё

class A {
public:
void add(B b);
bool go_do_your_thing();

private:
std::list b_list;
std::list::iterator current_b;
};
< /code>
Метод GO_DO_YOUR_THITH () итерация проходит через список, ищущий определенное условие в элементе B в списке и останавливает итерацию в этом элементе.  Таким образом, current_b должен указывать на элемент в списке, который удовлетворяет условию и возвращает True в первом элементе в списке действителен.  Предположим, что я специально делаю первый элемент недействительным, но следующие два хороши.  Я хочу подтвердить, что B2 специально выбран. < /P>
TEST_F( ATests, APicksBAndReturnsTrue ) {

b1.setState( NO_GOOD );
A.add( b1 );
A.add( b2 );
A.add( b3 );

EXPECT_EQ( A.do_your_thing( ), true );
// Expect that A picked b2, and not just any b
}
Я не хочу выставлять API, который позволяет клиентам напрямую получать доступ к итератору, но я хочу проверить, что внутренняя логика A верна.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... with-gtest
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»