diff --git a/documentation/docs/user-api/mockito.md b/documentation/docs/user-api/mockito.md index 2823e1d23..dcfe8c7cc 100644 --- a/documentation/docs/user-api/mockito.md +++ b/documentation/docs/user-api/mockito.md @@ -136,7 +136,6 @@ flowchart LR Условия можно задать на равенство определенному значению, на проверку типа переданного значения или же безусловно принимать любый параметры - Существует 2 основных подхода к формированию условий вызова: 1. Явный вызов метода с параметрами: `Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные)).Вернуть(2)` @@ -265,3 +264,36 @@ flowchart LR .Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, Мокито.ЛюбойПараметр())) .ВыполнитьМетод(); ``` + +4. Пропустить вызов метода, внутри которого происходит обращение к внешнему ресурсу, что "мешает" выполнить тест + + На примере отправки почтового сообщения средствами БСП 2.4.6, без подключения к почтовому серверу. + + Дано: собственный экспортный метод ОМ, который хотим протестировать + + ```bsl + Процедура ВыполнитьРассылкуОтчета() Экспорт + + // Сложная бизнес-логика подготовки писем, которую мы тестируем + + // Вызов метода, который выдаст исключение, т.к. в текущей ИБ не настроена учетная запись электронной почты + РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма); + + // Продолжение метода, в котором, к примеру, очищается РС, хранящий задания к рассылке + + КонецПроцедуры + ``` + + Метод `РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение` вызывает метод `РаботаСПочтовымиСообщениямиСлужебный.ОтправитьСообщение`, который надо заимствовать в расширение (`&Вместо`) и немного доработать: + + ```bsl + &Вместо("ОтправитьСообщение") + Процедура ЮТОтправитьСообщение(Знач УчетнаяЗапись, Знач ПараметрыОтправки) Экспорт + + // Этот параметр является возвращаемым значением, поэтому установим ему значение в виде случайной строки, таким образом мы имитируем получение идентификатора от почтового сервера + ПараметрыОтправки.Вставить("ИдентификаторСообщения", ЮТТестовыеДанные.СлучайнаяСтрока()); + + КонецПроцедуры + ``` + + Теперь при вызове тестируемой процедуры `ВыполнитьРассылкуОтчета` выполнится заимствованный метод, а в конце будет получен идентификатор "отправленного" сообщения без подключения к реальному почтовому серверу.