Скажем, например, что я создал оболочку вокруг API управления версиями (в моем конкретном случае это оболочка C ++ вокруг API Perforce, но я чувствую, что этот вопрос не зависит от языка и платформы).
Я хочу написать модульные тесты, которые гарантируют, что каждая конкретная функция, будь то извлечение / отправка / возврат / и т.д., ведет себя именно так, как я ожидаю.
Мое понимание модульных тестов состоит в том, что обычно высоздать «фиктивную» реализацию системы управления версиями, которая должна вести себя так, как действительная система, что позволит нам тестировать код, который мы хотим, в контролируемой среде.
Однако, похоже, это зависит отидея о том, что вы точно понимаете, как работает базовая система и какие данные она предоставляет, в обоих сценариях, когда выполняемые вами вызовы API терпят неудачу, а также успешно.
Существуют ли другие подходы к этой проблеме, илиявляется ли насмешка единственным реальным способом сделать это?