mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-04-20 11:38:01 +02:00
126 lines
8.8 KiB
Markdown
126 lines
8.8 KiB
Markdown
---
|
|
sidebar_position: 2
|
|
tags: [Начало]
|
|
---
|
|
|
|
# Пишем первый тест
|
|
|
|
## Подготовка окружения
|
|
|
|
Перед написанием тестов вам необходимо:
|
|
|
|
* Создать информационную базу, на которой будете прогонять тесты.
|
|
* Установить [тестовый движок](install/install.md) в проект. Не забывайте о необходимости сбросить признаки `Безопасный режим` и `Защита от опасных действий` после загрузки расширения.
|
|
* Если вы используете 1С:Enterprise Development Tools (EDT), то установить [плагин](install/install-plugin.md), который будет вам помогать.
|
|
|
|
## Первый тест
|
|
|
|
Вы все установили, перед вами открыта EDT или конфигуратор, в котором есть проверяемая конфигурация и расширение с тестовым движком `YAxUnit`.
|
|
|
|
Тесты с использование YAxUnit пишутся в расширении, это может быть как отдельное расширение, так и расширение движка. Подробнее об плюсах и минусах этих вариантов вы можете почитать в [статье об организации тестов](structure.md).
|
|
Для первого теста **рекомендую** использовать расширение движка.
|
|
|
|
Необходимо создать общий модуль в расширении (новый, а не заимствованный), назовем его `ОМ_ПервыйТест`, это будет наш первый тестовый набор (test suite).
|
|
|
|
Следующим шагом необходим создать экспортную процедуру с наименованием `ИсполняемыеСценарии`, это главный метод тестового набора, здесь необходимо будет перечислить тесты, которые содержит модуль. Так как в 1С:Предприятии нельзя в режиме исполнения понять, какие методы содержит модуль (нет рефлексии).
|
|
|
|
```bsl title="ОМ_ПервыйТест"
|
|
|
|
Процедура ИсполняемыеСценарии() Экспорт
|
|
|
|
КонецПроцедуры
|
|
```
|
|
|
|
Предположим **мы хотим протестировать** как работает сложение.
|
|
|
|
Для этого нам необходимо создать **экспортный метод**, который будет реализовывать тест и **зарегистрировать** его в методе `ИсполняемыеСценарии`.
|
|
|
|
```bsl title="ОМ_ПервыйТест"
|
|
Процедура ИсполняемыеСценарии() Экспорт
|
|
|
|
ЮТТесты.ДобавитьТест("Сложение");
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Сложение() Экспорт
|
|
|
|
КонецПроцедуры
|
|
|
|
```
|
|
|
|
За [регистрацию тестов](../features/test-registration.md) отвечает модуль `ЮТТесты`. Он содержит набор методов позволяющих добавлять тесты и настраивать их исполнение (параметры, режимы исполнения - клиент/сервер, работу в транзакции и многое другое).
|
|
С помощью команды `ЮТТесты.ДобавитьТест("Сложение")` мы добавляем тест `Сложение` в тестовый набор. На этом этапе можно уже [запускать](run/run.md) наш тест.
|
|
|
|
Теперь добавим полезной нагрузки тесту, проверим что `2 + 2 = 4`.
|
|
|
|
```bsl title="ОМ_ПервыйТест"
|
|
Процедура Сложение() Экспорт
|
|
|
|
РезультатСложения = 2 + 2; // 1
|
|
ЮТест.ОжидаетЧто(РезультатСложения) // 2
|
|
.Равно(4); // 3
|
|
|
|
КонецПроцедуры
|
|
```
|
|
|
|
1. Тест выполняет интересующую нас команду `2 + 2` (это может быть вызов какого-то метода конфигурации).
|
|
2. Используя [механизм утверждений](../features/assertions/assertions.md) (проверок) указываем, что хотим проверить `ЮТест.ОжидаетЧто(РезультатСложения)`
|
|
3. Проверяем, что `РезультатСложения` равно `4`
|
|
|
|
С помощью утверждений разработчик описывает, ожидания (требования) от работы команды(метода). Тест во время исполнения, проверяет соответствуют ли эти ожидания реальным данным, если есть расхождения, то будет выброшено исключение, которое зафиксируется в отчете о тестировании.
|
|
|
|
Настало время запустить наш первый тест, как это сделать прочтите в [статье](run/run.md).
|
|
После выполнения вы увидите отчет о тестировании, в котором тест будет "зеленым". Если в тесте исправить проверку `.Равно(4);` на `.Равно(3);` и еще раз запустить, то тест уже изменит свой статус и вы увидите сообщение об ошибке.
|
|
|
|
Можно еще доработать нащ тест, проверить разные варианты сложения, для этого могут помочь параметры теста.
|
|
|
|
```bsl title="ОМ_ПервыйТест"
|
|
Процедура ИсполняемыеСценарии() Экспорт
|
|
|
|
ЮТТесты
|
|
.ДобавитьТест("Сложение")
|
|
.СПараметрами(2, 3, 5)
|
|
.СПараметрами(2, -3, -1)
|
|
.СПараметрами("2", "-3", "2-3")
|
|
.СПараметрами("2", -3, "2-3")
|
|
;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Сложение(ПервыйОперанд, ВторойОперанд, Результат) Экспорт
|
|
|
|
РезультатСложения = ПервыйОперанд + ВторойОперанд;
|
|
ЮТест.ОжидаетЧто(РезультатСложения)
|
|
.Равно(Результат);
|
|
|
|
КонецПроцедуры
|
|
```
|
|
|
|
При регистрации указываются параметры, с которыми должен быть вызван тест, дополняем сигнатуру процедуры, чтобы она приняла параметры и переводим тест на использование этих параметров.
|
|
|
|
Также можно добавить проверок.
|
|
|
|
```bsl title="ОМ_ПервыйТест"
|
|
Процедура Сложение(ПервыйОперанд, ВторойОперанд, Результат) Экспорт
|
|
|
|
РезультатСложения = ПервыйОперанд + ВторойОперанд;
|
|
ЮТест.ОжидаетЧто(РезультатСложения)
|
|
.Заполнено()
|
|
.ИмеетТип("Число, Строка")
|
|
.Равно(Результат);
|
|
|
|
КонецПроцедуры
|
|
```
|
|
|
|
Поздравляю с первый реализованным тестом.
|
|
Используя [руководство](../features) и имеющиеся тесты вы сможете дальше изучить и написать более полезные тесты для своих продуктов.
|
|
|
|
Примеры тестов:
|
|
|
|
* [Тестов движка](https://github.com/bia-technologies/yaxunit/tree/develop/tests/src/CommonModules)
|
|
* Тесты других открытых проектов
|
|
* [bellerage-ssl](https://github.com/Bellerage-IT/bellerage-ssl/tree/master/src/cfe/yaxunit/src/CommonModules)
|
|
* [AdvancedGlobalSearchOneS](https://github.com/SeiOkami/AdvancedGlobalSearchOneS/tree/main/%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%D0%9F%D0%BE%D0%B8%D1%81%D0%BA.%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/src/CommonModules)
|
|
|
|
Также есть [видео курс](https://www.youtube.com/playlist?list=PLQ0oWbrgHNk5RF3dfH1QexQLr38Cm03Kj), кажется годным, но все не смотрел.
|