Я написал клиентский код, который должен отправлять некоторые данные через сокет и считывать ответ с удаленного сервера.
Я хотел бы протестировать этот код. Сигнатура функции выглядит примерно так:
double call_remote(double[] args, int fd);
где fd
- файловый дескриптор сокета на удаленном сервере.
Теперь функция call_remote
будет после отправки данные, блокируемые при чтении ответа с сервера. Как я могу заглушить такой удаленный сервер для модульного тестирования кода?
В идеале я бы хотел что-то вроде:
int main() {
int stub = /* initialize stub */
double expected = 42.0;
assert(expected == call_remote(/* args */, stub);
return 0;
}
double stub_behavior(double[] args) {
return 42.0;
}
Я бы хотел, чтобы stub_behavior
был вызван и отправил 42.0
] в зарезервированном файловом дескрипторе.
Я могу сделать это простым способом?