You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-06-20 09:19:27 +02:00
Доработка CONTRIBUTING.md
This commit is contained in:
+15
-15
@@ -90,7 +90,7 @@
|
||||
// Получает информацию об аккаунте
|
||||
//
|
||||
// Параметры:
|
||||
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
|
||||
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа - access
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
|
||||
@@ -153,9 +153,8 @@
|
||||
Каждая функция должна быть покрыта Unit-тестом - это важнейшая часть поддержки библиотек на длинной дистанции, позволяющая выпускать каждый новый релиз, не задаваясь вопросом "Работают ли созданные ранее функции до сих пор или уже нет?"
|
||||
|
||||
|
||||
:::important
|
||||
Сразу стоит оговорится: далее пойдет достаточно запутанное, если не сказать душное, описание регламента создания тестов. При этом, вы не сможете запустить созданные тесты самостоятельно, чтобы проверить их работоспособность. Поэтому их создание находится в категории "Сделайте как-нибудь": частичное несоответствие добавленных тестов регламенту не будут причиной для отклонения PR. Я буду рад, если вы добавите их хотя бы в каком-то виде и в правильном модуле, а мне будет достаточно привести их к корректному виду, а не писать целиком с нуля. Также тут продолжает работать правило из блока разработки функций: *"Посмотри на остальные и сделай единообразно"*
|
||||
:::
|
||||
> [!IMPORTANT]
|
||||
> Сразу стоит оговорится: далее пойдет достаточно запутанное, если не сказать душное, описание регламента создания тестов. При этом, вы не сможете запустить созданные тесты самостоятельно, чтобы проверить их работоспособность. Поэтому их создание находится в категории "Сделайте как-нибудь": частичное несоответствие добавленных тестов регламенту не будут причиной для отклонения PR. Я буду рад, если вы добавите их хотя бы в каком-то виде и в правильном модуле, а мне будет достаточно привести их к корректному виду, а не писать целиком с нуля. Также тут продолжает работать правило из блока разработки функций: *"Посмотри на остальные и сделай единообразно"*
|
||||
|
||||
Все Unit-тесты находятся в модуле `OPI_Тесты`, в области `СлужебныеПроцедурыИФункции -> АтомарныеТесты -> Имя модуля без префикса`, и представляют из себя процедуру, название которой состоит из имени модуля (без префикса `OPI_`), нижнего подчеркивания и имени тестируемой функции
|
||||
|
||||
@@ -178,9 +177,8 @@
|
||||
|
||||
Процедура всегда должна содержать один или несколько вызовов функции `Обработать`, в которую передается результат выполнения, имя библиотеки и имя тестируемой функции. При желании реализовать несколько проверок в рамках одного теста, можно в качестве четвертого параметра указать строкой `Вариант`. Эти данные будут переданы в функцию проверки результата теста, о которой пойдет речь в следующем разделе
|
||||
|
||||
:::important
|
||||
Для основного результата теста `Вариант` должен быть не указан
|
||||
:::
|
||||
> [!IMPORTANT]
|
||||
> Для основного результата теста `Вариант` должен быть не указан
|
||||
|
||||
```bsl
|
||||
...
|
||||
@@ -202,12 +200,12 @@
|
||||
Обработать(Результат, "PostgreSQL", "СоздатьТаблицу", "Ошибка типа");
|
||||
```
|
||||
|
||||
Также в теле тестовой процедуры используются служебные комментарии `// SKIP` и `// END`. Они используются парсером при создании онлайн-документации: тестовая процедура является там наглядным примером кода для пользователя. При помощи данных служебных комментариев можно отсечь лишние строки, которые нужны в тесте, но не нужны в примере кода.
|
||||
Также, в теле тестовой процедуры используются служебные комментарии `// SKIP` и `// END`. Они отслеживаются парсером при создании онлайн-документации: тестовая процедура является там наглядным примером кода для пользователя. При помощи данных служебных комментариев можно отсечь лишние строки, которые нужны в тесте, но не нужны в примере кода.
|
||||
|
||||
```bsl
|
||||
...
|
||||
// !!! Тут идет удаление таблицы перед тестом создания, чтобы не получить ошибку "уже существует"
|
||||
// !!! Но в примере работы с функцией СоздатьТаблицу для документации это не нужно показывать
|
||||
// Тут идет удаление таблицы перед тестом создания, чтобы не получить ошибку "уже существует"
|
||||
// Но в примере работы с функцией СоздатьТаблицу для документации это не нужно показывать
|
||||
|
||||
OPI_PostgreSQL.УдалитьТаблицу(Таблица, СтрокаПодключения, НастройкиTLS); // SKIP
|
||||
|
||||
@@ -215,12 +213,12 @@
|
||||
|
||||
// END
|
||||
|
||||
// !!! Весь код после END не попадает в документацию
|
||||
// Весь код после END не попадает в документацию
|
||||
|
||||
Обработать(Результат, "PostgreSQL", "СоздатьТаблицу");
|
||||
```
|
||||
|
||||
Сама тестовая процедура всегда принимает один параметр - `ПараметрыФункции`. Несколько атомарных тестов объединяются по смыслу (чаще всего - по области в основном модуле библиотеки) в тестовые наборы. Тестовые наборы создаются также в модуле `OPI_Тесты`, в области `СлужебныйПрограммныйИнтерфейс -> ЗапускаемыеТесты -> Имя модуля без префикса`. Каждый тест должен принадлежать тестовому набору, там и определяются `ПараметрыФункции`
|
||||
Сама тестовая процедура всегда принимает один параметр - `ПараметрыФункции`. Несколько атомарных тестов объединяются по смыслу (чаще всего - по области в основном модуле библиотеки) в тестовые наборы. Тестовые наборы создаются также в модуле `OPI_Тесты`, в области `СлужебныйПрограммныйИнтерфейс -> ЗапускаемыеТесты -> Имя модуля без префикса`. Каждый тест должен принадлежать тестовому набору, там определяются и `ПараметрыФункции`
|
||||
|
||||
```bsl
|
||||
#Область ЗапускаемыеТесты
|
||||
@@ -247,7 +245,7 @@
|
||||
|
||||
```
|
||||
|
||||
В тестовом наборе определяются параметры, передаваемые в тесты:
|
||||
В тестовом наборе определяются параметры, передаваемые в тесты всего набора:
|
||||
|
||||
```
|
||||
ПараметрыТеста = Новый Структура;
|
||||
@@ -255,11 +253,13 @@
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ollama_Token", ПараметрыТеста);
|
||||
```
|
||||
|
||||
Они добавляются при помощи специальной функции `OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию` и характеризуются идентификаторами, вроде `Ollama_URL`. На практике, это ключи JSON файла с секретными и не секретными данными для тестирования. Вам не будет доступен этот файл, поэтому вы можете не сильно заморачиваться над используемыми именами: вы можете найти уже существующие в тестовом наборе, если они подходят вам по смыслу (по аналогии с существующими тестами) или придумать новые, описав в PR или комментарии, что они означают.
|
||||
Они добавляются в коллекцию при помощи специальной функции `OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию` и характеризуются идентификаторами, вроде `Ollama_URL`. На практике, это ключи JSON файла с секретными и не секретными данными для тестирования. Вам не будет доступен этот файл, поэтому вы можете не сильно заморачиваться над используемыми именами: можно найти уже существующие в тестовом наборе, если они подходят вам по смыслу (по аналогии с существующими тестами), или придумать новые, описав в PR, что они означают.
|
||||
|
||||
### Проверки тестов
|
||||
|
||||
Как уже было сказано ранее, каждый Unit-тест должен содержать вызов функции `Обработать`. Эта функция передает значение результата теста и его варианта в процедуру проверки, которая должна располагаться в модуле `OPI_ПолучениеДанныхТестов`, в области `СлужебныеПроцедурыИФункции -> Проверки` и иметь имя, равное имени процедуры теста, но с префиксом `Проверка_`, Например `Проверка_Telegram_ОтправитьТекстовоеСообщение`. В ней можно использовать утверждения для анализа корректности переданного результата при помощи функции `ОжидаетЧто`, а также ветвить проверки в зависимости от переданного варианта. Дополнительно проверка может иметь до трех нестандартных параметров, которые передаются при вызове функции `Обработать` после параметра `Вариант`
|
||||
Как уже было сказано ранее, каждый Unit-тест должен содержать вызов функции `Обработать`. Эта функция передает значение результата теста и его варианта в соответствующую процедуру проверки, которая должна располагаться в модуле `OPI_ПолучениеДанныхТестов`, в области `СлужебныеПроцедурыИФункции -> Проверки` и иметь имя, равное имени процедуры теста, но с префиксом `Проверка_`, Например `Проверка_Telegram_ОтправитьТекстовоеСообщение`
|
||||
|
||||
В этой процедуре можно использовать утверждения для анализа корректности переданного результата при помощи функции `ОжидаетЧто`, а также ветвить проверки в зависимости от переданного значения в параметр `Вариант`. Дополнительно процедура проверки может иметь до трех нестандартных параметров, которые передаются при вызове функции `Обработать` после параметра `Вариант`
|
||||
|
||||
```bsl
|
||||
|
||||
|
||||
Reference in New Issue
Block a user