Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавил в документацию по Мокито пример для БСП #52

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 33 additions & 1 deletion documentation/docs/user-api/mockito.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,6 @@ flowchart LR

Условия можно задать на равенство определенному значению, на проверку типа переданного значения или же безусловно принимать любый параметры


Существует 2 основных подхода к формированию условий вызова:

1. Явный вызов метода с параметрами: `Обучение(РаботаСHTTP).Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(ИсточникДанных, Данные)).Вернуть(2)`
Expand Down Expand Up @@ -265,3 +264,36 @@ flowchart LR
.Когда(РаботаСHTTP.ОтправитьОбъектНаСервер(Справочники.ИсточникиДанных.FTP, Мокито.ЛюбойПараметр()))
.ВыполнитьМетод();
```

4. Пропустить вызов метода, внутри которого происходит обращение к внешнему ресурсу, что "мешает" выполнить тест

На примере отправки почтового сообщения средствами БСП 2.4.6, без подключения к почтовому серверу.

Дано: собственный экспортный метод ОМ, который хотим протестировать

```bsl
Процедура ВыполнитьРассылкуОтчета() Экспорт

// Сложная бизнес-логика подготовки писем, которую мы тестируем

// Вызов метода, который выдаст исключение, т.к. в текущей ИБ не настроена учетная запись электронной почты
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма);

// Продолжение метода, в котором, к примеру, очищается РС, хранящий задания к рассылке

КонецПроцедуры
```

Метод `РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение` вызывает метод `РаботаСПочтовымиСообщениямиСлужебный.ОтправитьСообщение`, который надо заимствовать в расширение (`&Вместо`) и немного доработать:

```bsl
&Вместо("ОтправитьСообщение")
Процедура ЮТОтправитьСообщение(Знач УчетнаяЗапись, Знач ПараметрыОтправки) Экспорт

// Этот параметр является возвращаемым значением, поэтому установим ему значение в виде случайной строки, таким образом мы имитируем получение идентификатора от почтового сервера
ПараметрыОтправки.Вставить("ИдентификаторСообщения", ЮТТестовыеДанные.СлучайнаяСтрока());

КонецПроцедуры
```

Теперь при вызове тестируемой процедуры `ВыполнитьРассылкуОтчета` выполнится заимствованный метод, а в конце будет получен идентификатор "отправленного" сообщения без подключения к реальному почтовому серверу.