Например, что это значит в этой цитате?
Интеграция с внешним API - это почти гарантия любого современного веб-приложения. Чтобы эффективно протестировать такую интеграцию, вам нужно заглушить ее. Хорошую заглушку должно быть легко создать, и она должна постоянно обновляться с учетом актуальных ответов API. В этом посте мы опишем стратегию тестирования с использованием заглушек для внешнего API.
Ответы:
Заглушка - это управляемая замена существующей зависимости (или сотрудника) в системе. Используя заглушку, вы можете протестировать свой код, не обращаясь напрямую к зависимости.
Внешняя зависимость - существующая зависимость:
это объект в вашей системе, с которым ваш тестируемый код взаимодействует и над которым вы не можете контролировать. (Общие примеры - файловые системы, потоки, память, время и т. Д.)
Например, в коде ниже:
Вы хотите протестировать метод mailService.SendEMail () , но для этого вам нужно смоделировать исключение в вашем тестовом методе, поэтому вам просто нужно создать объект Fake Stub errorService для имитации желаемого результата, тогда ваш тестовый код будет возможность протестировать метод mailService.SendEMail () . Как видите, вам нужно смоделировать результат, полученный от другой зависимости, которая является объектом класса ErrorService (существующий объект зависимости).
источник
Окурка , в этом контексте означает макет реализации.
То есть простая поддельная реализация, соответствующая интерфейсу и предназначенная для тестирования.
источник
По словам непрофессионала, это фиктивные данные (или поддельные данные, тестовые данные и т. Д.), Которые вы можете использовать для тестирования или разработки своего кода, пока вы (или другая сторона) не будете готовы представить / получить реальные данные. Это программистский "Lorem Ipsum".
База данных сотрудников не готова? Придумайте простой вариант с Джейн Доу, Джоном Доу ... и т. Д. API не готов? Создайте поддельный, создав статический файл .json, содержащий поддельные данные.
источник
В этом контексте слово «заглушка» используется вместо «макет», но для ясности и точности автору следовало использовать «макет», потому что «макет» - это своего рода заглушка, но для тестирования. Чтобы избежать дальнейшей путаницы, нам нужно определить, что такое заглушка.
В общем контексте заглушка - это часть программы (обычно функция или объект), которая инкапсулирует сложность вызова другой программы (обычно расположенной на другом компьютере, виртуальной машине или процессе, но не всегда, она также может быть локальной. объект). Поскольку фактическая вызываемая программа обычно не находится в одном и том же пространстве памяти, ее вызов требует множества операций, таких как адресация, выполнение фактического удаленного вызова, маршалинг / сериализация данных / аргументов, которые необходимо передать (и то же самое с потенциальным результатом), может даже иметь дело с аутентификацией / безопасностью и так далее. Обратите внимание, что в некоторых случаях заглушки также называются прокси (например, динамические прокси в Java).
Мок - это очень специфический и ограничивающий вид заглушки, потому что макет - это замена другой функции или объекта для тестирования. На практике мы часто используем моки в качестве локальных программ (функций или объектов) для замены удаленной программы в тестовой среде. В любом случае макет может имитировать реальное поведение замененной программы в ограниченном контексте.
Наиболее известные виды заглушек, очевидно, предназначены для распределенного программирования, когда необходимо вызывать удаленные процедуры ( RPC ) или удаленные объекты ( RMI , CORBA ). Большинство фреймворков / библиотек распределенного программирования автоматизируют создание заглушек, поэтому вам не нужно писать их вручную. Заглушки можно сгенерировать из определения интерфейса, написанного, например, с помощью IDL (но вы также можете использовать любой язык для определения интерфейсов).
Обычно в RPC, RMI, CORBA и т. Д. Различают заглушки на стороне клиента , которые в основном заботятся о маршалинге / сериализации аргументов и выполнении удаленного вызова, и заглушки на стороне сервера , которые в основном заботятся о демаршалинге / десериализации. аргументы и фактически выполнить удаленную функцию / метод. Очевидно, что клиентские заглушки расположены на стороне клиента, а заглушки серверов (часто называемые скелетами) расположены на стороне сервера.
Написание хороших эффективных и универсальных заглушек становится довольно сложной задачей при работе со ссылками на объекты. Большинство сред распределенных объектов, таких как RMI и CORBA, имеют дело со ссылками на распределенные объекты, но большинство программистов этого избегают, например, в средах REST. Обычно в средах REST программисты JavaScript создают простые функции-заглушки для инкапсуляции вызовов AJAX (сериализация объектов поддерживается с помощью
JSON.parse
иJSON.stringify
). Проект Swagger Codegen предоставляет обширную поддержку для автоматического создания заглушек REST на различных языках.источник
Заглушка - это определение функции, которое имеет правильное имя функции, правильное количество параметров и дает фиктивный результат правильного типа.
Это помогает написать тест и служит своего рода каркасом, позволяющим запускать примеры даже до завершения проектирования функции.
источник
У вас также есть очень хорошая среда тестирования для создания такой заглушки. Один из моих предпочтительных - Mockito. Также есть EasyMock и другие ... Но Mockito великолепен, вы должны его прочитать - очень элегантный и мощный пакет.
источник
Эта фраза почти наверняка является аналогией с этапом строительства дома - «зачисткой» водопровода. Во время строительства, пока стены еще открыты, кладут черновую сантехнику. Это необходимо для продолжения строительства. Затем, когда все вокруг готово, каждый возвращается и добавляет смесители, туалеты и сам конечный продукт. (См., Например, Как установить заглушку для водопровода .)
Когда вы «заглушаете» функцию в программировании, вы создаете ее достаточно для работы (для тестирования или для написания другого кода). Затем вы вернетесь позже и замените его полной реализацией.
источник
Заглушки RPC
Источник
источник
«Удаление функции означает, что вы напишете ровно столько, чтобы показать, что функция была вызвана, оставив детали на потом, когда у вас будет больше времени».
От: SAMS Научитесь C ++, Джесси Либерти и Брэдли Джонс
источник