В настоящее время я пишу набор модульных тестов для библиотеки микроблогов на Python, а следующие рекомендации, полученные здесь, начали использовать макетные объекты для возврата данных, как из службы (identi.ca в этом случае).Использование макетных объектов без привязки модульных тестов
Однако, конечно, насмехаясь над httplib2 - модулем, который я использую для запроса данных - я привязываю модульные тесты к конкретной реализации моей библиотеки и удаляю их способность функционировать после рефакторинга (что, очевидно, является одним из основных преимущества модульного тестирования в удобном месте).
Есть ли лучший сценарий обоих миров? Единственный, о котором я могу думать, это настроить сервер микроблогов на использование только для тестирования, но это, очевидно, будет большой объем работы.
Я думаю, что оболочка может (по крайней мере теоретически) уменьшить размер изменений, необходимых для замены httplib2 на что-то еще. Без обертки вам нужно изменить тестируемые классы * и * объект макета. С оберткой вы меняете оболочку (старый макет все равно должен работать.) Это, конечно, предполагает, что API-интерфейс обложки достаточно общий, чтобы не меняться после замены библиотеки. –