В этих случаях лучшее решение - создать макет, имитирующий поведение сервера.Вы не должны полагаться (если не крайне необходимо) на внешние состояния при выполнении ваших тестов.
Тесты могут не пройти, потому что сервер не подключен, нет подключения к Интернету или что-то еще.
Вы можете использовать что-то вроде Google Mock , теперь часть GoogleНабор тестов для эмуляции поведения:
class MockServer : public Server {
public:
MOCK_METHOD2(DoConnect, bool());
....
};
Затем выполните что-то вроде этого:
TEST(ServerTest, CanConnect) {
MockServer s;
EXPECT_CALL(s, DoConnect())
..WillOnce(Return(true));
EXPECT_TRUE(server.isConnected());
}
Вы можете смоделировать обработку ошибок:
TEST(ServerTest, CannotConnect) {
MockServer s;
EXPECT_CALL(s, DoConnect())
..WillOnce(Return(false));
EXPECT_FALSE(server.isConnected());
// ... Check the rest of your variables or states that may be false and
// check that the error handler is working properly
}