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 верна.>
У меня есть класс, который содержит список других объектов, аналогичных ниже < /p> [code]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 ) {
EXPECT_EQ( A.do_your_thing( ), true ); // Expect that A picked b2, and not just any b } [/code] Я не хочу выставлять API, который позволяет клиентам напрямую получать доступ к итератору, но я хочу проверить, что внутренняя логика A верна.>