Что означает "заглушить" в программировании?

Например, что это означает в этой цитате?

Интеграция с внешним API почти гарантирована в любом современном веб-приложении. Чтобы эффективно протестировать такую ​​интеграцию, вам нужно заглушить. Хороший заглушка должен быть легко создан и постоянно обновляться с актуальными текущими ответами API. В этом сообщении хорошо очертите стратегию тестирования с помощью stubs для внешнего API.

Ответ 1

Штук является контролируемой заменой Существующей зависимости (или соавтором) в системе. Используя заглушку, вы можете протестировать свой код без непосредственно касаясь зависимости.

Внешняя зависимость - существующая зависимость:
Это объект в вашей системе, что ваш код под тестированием взаимодействует и над которыми вы не контролируете. (Общие примерами являются файловые системы, потоки, память, время и т.д.)

Например, ниже код:

public void Analyze(string filename)
    {
        if(filename.Length<8)
        {
            try
            {
                errorService.LogError("long file entered named:" + filename);
            }
            catch (Exception e)
            {
                mailService.SendEMail("[email protected]", "ErrorOnWebService", "someerror");
            }
        }
    }

Вы хотите протестировать метод mailService.SendEMail(), но для этого вам нужно смоделировать исключение в вашем тестовом методе, поэтому вам просто нужно создать Fake Stub errorService, чтобы имитировать желаемый результат, тогда ваш тестовый код сможет протестировать метод mailService.SendEMail(). Как вы видите, вам нужно смоделировать результат, который является результатом другой Dependency, которая представляет собой объект класса ErrorService (существующий объект Dependency).

Ответ 2

A stub, в этом контексте означает макетную реализацию.

То есть простая поддельная реализация, которая соответствует интерфейсу и должна использоваться для тестирования.

Ответ 3

Условия Layman, это фиктивные данные (или поддельные данные, тестовые данные... и т.д.), которые вы можете использовать для тестирования или разработки вашего кода до тех пор, пока вы (или другая сторона) не будете готовы представлять/получать реальные данные. Это программист "Lorem Ipsum".

База данных сотрудников не готова? Составьте простой с Джейн Доу, Джон Доу и т.д. API не готов? Создайте поддельный, создав статический файл .json, содержащий поддельные данные.

Ответ 4

У вас также очень хорошие рамки тестирования для создания такого заглушки. Одним из моих предпочтительных является Mockito Существует также EasyMock и другие... Но Mockito здорово, вы должны прочитать его - очень элегантный и мощный пакет

Ответ 5

Stub - это определение функции, которое имеет правильное имя функции, правильное количество параметров и создает фиктивный результат правильного типа.

Это помогает написать тест и служит своего рода подмостками, позволяющими запускать примеры еще до завершения работы функции