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

first part of tests #157

Merged
merged 5 commits into from
Dec 16, 2024

Conversation

denisushakov
Copy link
Contributor

@denisushakov denisushakov commented Dec 5, 2024

Summary by CodeRabbit

  • Новые функции

    • Добавлен новый общий модуль "ОМ_ПредопределенныеЗначения" с метаданными.
    • Введены новые тестовые процедуры для проверки предопределенных значений и обработки параметров.
    • Добавлен новый общий модуль "ОМ_ПредопределенныеЗначенияСлужебный".
    • Добавлен новый общий модуль "пбп_ПредопределенныеЗначенияПереопределяемый".
    • Добавлен новый общий модуль "ОМ_ПредопределенныеЗначенияВызовСервера".
    • Добавлен новый общий модуль "пбп_ПредопределенныеЗначения".
    • Обновлена конфигурация для включения новых общих модулей.
  • Исправления ошибок

    • Улучшена структура тестирования для обеспечения корректности обработки предопределенных элементов.

Copy link

coderabbitai bot commented Dec 5, 2024

Walkthrough

В данном запросе на изменение был добавлен новый XML-файл, определяющий объект метаданных для общего модуля "ОМ_ПредопределенныеЗначения". Также был создан файл с процедурами для тестирования предопределенных значений, который включает тесты и вспомогательные процедуры. В дополнение к этому, добавлены новые XML-файлы для других модулей и внесены изменения в файл конфигурации, что расширяет список доступных модулей.

Changes

Файл Изменения
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения.xml Добавлен новый XML-файл с объектом метаданных CommonModule и его свойствами.
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl Добавлены процедуры для тестирования предопределенных значений, включая ИсполняемыеСценарии и другие тесты.
src/cfe/YAXUnit/Configuration.xml Добавлены новые записи <CommonModule> для различных предопределенных значений.
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияСлужебный.xml Добавлен новый XML-файл с объектом метаданных для модуля "ОМ_ПредопределенныеЗначенияСлужебный".
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl Добавлены процедуры для тестирования предопределенных значений в служебном модуле.
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый.xml Добавлен новый XML-файл с объектом метаданных для модуля "пбп_ПредопределенныеЗначенияПереопределяемый".
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl Добавлены функции для анализа исключаемых полей для расчета хеша.
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера.xml Добавлен новый XML-файл с объектом метаданных для модуля "ОМ_ПредопределенныеЗначенияВызовСервера".
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера/Ext/Module.bsl Добавлены процедуры для тестирования инициализации предопределенных элементов в контексте серверного вызова.
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначения.xml Добавлен новый XML-файл с объектом метаданных для модуля "пбп_ПредопределенныеЗначения".
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl Добавлена функция для инициализации предопределенных значений с использованием библиотеки Мокито.

Possibly related PRs

  • refactoring the creation of hierarchical elements #129: Изменения в этом PR касаются значительных модификаций обработки предопределенных значений, включая добавление функций, связанных с генерацией хеш-ключей и обработкой параметров, что напрямую связано с новым XML-файлом, введенным в основном PR.
  • fixed bugs and smells #162: Этот PR сосредоточен на улучшении управления предопределенными значениями, включая введение процедур для обработки дубликатов и уведомлений, что соответствует целям основного PR, касающимся предопределенных значений.
  • refact predefined subsystem functions #163: Этот PR рефакторит функции, связанные с предопределенными элементами, изменяя источник параметров и логику обработки, что тесно связано с изменениями, внесенными в основном PR, касающимся обработки предопределенных значений.

Suggested reviewers

  • ivanmolodec
  • thvvmas

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6636000 and 133d196.

📒 Files selected for processing (1)
  • src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1 hunks)
🔇 Additional comments (2)
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (2)

2-18: Рефакторинг дублирующегося кода

В функциях Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент и Мок_ИсключаемыеПоляДляРасчетаХешаГруппа наблюдается идентичная структура кода. Рекомендуется создать общий макрос или шаблон для уменьшения дублирования.

+#Область Макросы
+
+// Создает функцию-перехватчик для указанного метода
+//
+// Параметры:
+//  ИмяМетода - Строка - Имя перехватываемого метода
+//
+#КонецОбласти
+
+#Макрос СоздатьПерехватчик(ИмяМетода)
+&Вместо(ИмяМетода)
+Функция Мок_#ИмяМетода()
+    ПараметрыМетода = Новый Массив;
+    Возврат ВыполнитьПерехватМетода("#ИмяМетода", ПараметрыМетода);
+КонецФункции
+#КонецМакроса
+
-&Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
-Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
-    ПараметрыМетода = Новый Массив;
-    Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаЭлемент", ПараметрыМетода);
-КонецФункции
+СоздатьПерехватчик("ИсключаемыеПоляДляРасчетаХешаЭлемент")

-&Вместо("ИсключаемыеПоляДляРасчетаХешаГруппа")
-Функция Мок_ИсключаемыеПоляДляРасчетаХешаГруппа()
-    ПараметрыМетода = Новый Массив;
-    Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаГруппа", ПараметрыМетода);
-КонецФункции
+СоздатьПерехватчик("ИсключаемыеПоляДляРасчетаХешаГруппа")

22-45: Функция ВыполнитьПерехватМетода реализована корректно

Функция имеет:

  • Подробное описание параметров и возвращаемого значения
  • Корректную обработку перехвата вызова
  • Правильную логику управления потоком выполнения

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl (2)

3-22: Добавьте описание назначения тестового модуля

Рекомендуется добавить комментарий, описывающий назначение тестового модуля и его основные сценарии тестирования перед процедурой ИсполняемыеСценарии.

 #Область СлужебныйПрограммныйИнтерфейс
 
+// Модуль тестирования функциональности предопределенных значений
+// Проверяет корректность инициализации и обработки предопределенных элементов
 Процедура ИсполняемыеСценарии() Экспорт

24-83: Оптимизируйте повторяющийся код инициализации

В тестовых методах присутствует дублирование кода инициализации менеджера объекта. Рекомендуется вынести общую логику в отдельную вспомогательную процедуру.

+Процедура ПолучитьМенеджерОбъекта(ИмяОбъекта, МенеджерОбъекта)
+    МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта);
+КонецПроцедуры

 Процедура Тест_ИнициализацияИзПодсистемыПредопределенных(ИмяОбъекта) Экспорт
-    Менеджер = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта);
+    ПолучитьМенеджерОбъекта(ИмяОбъекта, Менеджер);
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between a30f0e3 and f1b9dc4.

📒 Files selected for processing (3)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения.xml (1 hunks)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl (1 hunks)
  • src/cfe/YAXUnit/Configuration.xml (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения.xml
🔇 Additional comments (2)
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl (1)

89-107: LGTM! Проверки реализованы корректно

Процедура ПроверкаРезультатовОбработкиПредопределенных содержит полный набор необходимых проверок типов и структуры результата.

src/cfe/YAXUnit/Configuration.xml (1)

164-164: LGTM! Модуль добавлен корректно

Регистрация общего модуля ОМ_ПредопределенныеЗначения выполнена в соответствии с существующей структурой конфигурации.

This comment has been minimized.

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (5)
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl (2)

3-21: Структура тестового набора организована корректно

Тестовые сценарии хорошо структурированы и логически сгруппированы. Названия тестов информативны.

Рекомендуется добавить краткое описание назначения каждого тестового набора в виде комментария перед его определением:

 	ЮТТесты
+		// Проверка корректности обработки дополнительных параметров
 		.ДобавитьТестовыйНабор("Доп. параметры обработки предопределенных элементов")
+		// Проверка принадлежности менеджера к подсистеме
 		.ДобавитьТестовыйНабор("Менеджер входит в подсистему предопределенных")

86-109: Рекомендуется добавить раннюю валидацию параметров

Процедура проверки результатов реализована корректно, но можно улучшить обработку входных параметров.

Рекомендуется добавить проверку входных параметров в начале процедуры:

 Процедура ПроверкаРезультатовОбработкиПредопределенных(МенеджерОбъекта, Таблица, МенеджерИзПодсистемы = Истина)
+    // Проверка входных параметров
+    Если Таблица = Неопределено Тогда
+        ВызватьИсключение НСтр("ru='Параметр Таблица не может быть Неопределено'");
+    КонецЕсли;
+    
+    Если ТипЗнч(МенеджерИзПодсистемы) <> Тип("Булево") Тогда
+        ВызватьИсключение НСтр("ru='Параметр МенеджерИзПодсистемы должен быть булевого типа'");
+    КонецЕсли;
     
     Результат = пбп_ПредопределенныеЗначенияСлужебный
         .ДопПараметрыОбработкиПредопределенныхЭлементов(Таблица, МенеджерОбъекта);
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl (2)

14-36: Рекомендуется добавить проверку исключения служебных полей

В тесте присутствует поле "Служебный_Поле3", но отсутствует явная проверка его исключения из результата. Рекомендуется добавить проверку, что служебные поля корректно отфильтровываются.

 	Ожидаемое = Новый Структура("Поле1,Поле4");
+	// Проверяем что служебные поля отсутствуют в результате
+	ЮТест.ОжидаетЧто(Результат.Свойство("Служебный_Поле3")).Равно(Ложь);
 	
 	ЮТест.ОжидаетЧто(Результат).Равно(Ожидаемое);

47-51: Рекомендуется соблюдать единый стиль форматирования

В данном тесте точка с запятой вынесена на отдельную строку, в то время как в других тестах она находится в той же строке, что и вызов метода .Прогон().

 	Мокито.Обучение(пбп_ПредопределенныеЗначенияПереопределяемый)
 		.Когда("ИсключаемыеПоляДляРасчетаХешаГруппа")
 		.Вернуть(ИсключаемыеПоля)
-		.Прогон()
-	;
+		.Прогон();
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1)

2-19: Добавьте документацию к функции

Рекомендуется добавить описание назначения функции, её параметров и возвращаемого значения в формате:

+// Функция-перехватчик для тестирования метода ИсключаемыеПоляДляРасчетаХешаЭлемент
+//
+// Возвращаемое значение:
+//  Произвольный - Результат оригинального метода или мока
 &Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
 Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f1b9dc4 and 4c25f5a.

📒 Files selected for processing (6)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl (1 hunks)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияСлужебный.xml (1 hunks)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl (1 hunks)
  • src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый.xml (1 hunks)
  • src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1 hunks)
  • src/cfe/YAXUnit/Configuration.xml (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый.xml
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияСлужебный.xml
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/cfe/YAXUnit/Configuration.xml
🔇 Additional comments (2)
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl (1)

3-12: Корректная организация тестового набора!

Процедура правильно организует тестовый набор, используя понятные названия тестов и корректную группировку.

src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1)

1-38: Корректная реализация тестовых заглушек

Реализация корректно использует фреймворк Mockito и следует стандартным паттернам создания заглушек для тестирования. Основная логика работоспособна.

Comment on lines +23 to +80
Процедура Тест_ДопПараметрыОбработкиКорректныеДанные() Экспорт

МенеджерОбъекта = пбп_Переадресация
.МенеджерОбъектаПоПолномуИмени("ПланВидовХарактеристик.пбп_ПредопределенныеЗначения");

Таблица = пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенныхЭлементов(МенеджерОбъекта);

ПроверкаРезультатовОбработкиПредопределенных(МенеджерОбъекта, Таблица);

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

Процедура Тест_ДопПараметрыОбработкиПустаяТаблица() Экспорт

МенеджерОбъекта = пбп_Переадресация
.МенеджерОбъектаПоПолномуИмени("ПланВидовХарактеристик.пбп_ПредопределенныеЗначения");

Таблица = Новый ТаблицаЗначений;

ПроверкаРезультатовОбработкиПредопределенных(МенеджерОбъекта, Таблица);

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

Процедура Тест_ДопПараметрыОбработкиМенеджерНеИзПодсистемыПредопределенных(ИмяОбъекта) Экспорт

МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта);

Таблица = Новый ТаблицаЗначений;

ПроверкаРезультатовОбработкиПредопределенных(МенеджерОбъекта, Таблица, Ложь);

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

Процедура Тест_ДопПараметрыОбработкиМенеджерРавенНеопределено() Экспорт

МенеджерОбъекта = Неопределено;

Таблица = Новый ТаблицаЗначений;

ПроверкаРезультатовОбработкиПредопределенных(МенеджерОбъекта, Таблица, Ложь);

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

Процедура Тест_МенеджерВходитВПодсистему(ИмяОбъекта, ОжидаемоеЗначение) Экспорт

МенеджерОбъекта = Неопределено;
Если ЗначениеЗаполнено(ИмяОбъекта) Тогда
МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта);
КонецЕсли;

Результат = пбп_ПредопределенныеЗначенияСлужебный.МенеджерВходитВПодсистемуПредопределенных(МенеджерОбъекта);

Если ОжидаемоеЗначение Тогда
ЮТест.ОжидаетЧто(Результат).ЭтоИстина();
Иначе
ЮТест.ОжидаетЧто(Результат).ЭтоЛожь();
КонецЕсли;

КонецПроцедуры
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Необходимо улучшить документацию тестовых процедур

Тестовые процедуры реализованы корректно, но отсутствует документация, описывающая назначение каждого теста и его ожидаемое поведение.

Рекомендуется:

  1. Добавить комментарии перед каждой тестовой процедурой, описывающие:
    • Назначение теста
    • Входные данные
    • Ожидаемый результат

Пример:

+// Проверяет обработку корректных данных для предопределенных элементов
+// 
+// Параметры:
+//  Нет
+//
+// Ожидаемый результат:
+//  Структура с корректно заполненными свойствами
 Процедура Тест_ДопПараметрыОбработкиКорректныеДанные() Экспорт
  1. Вынести повторяющийся код инициализации в отдельную вспомогательную процедуру:
Процедура ИнициализироватьМенеджерОбъекта(ИмяОбъекта, МенеджерОбъекта)
    Если ЗначениеЗаполнено(ИмяОбъекта) Тогда
        МенеджерОбъекта = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяОбъекта);
    Иначе
        МенеджерОбъекта = Неопределено;
    КонецЕсли;
КонецПроцедуры

Comment on lines 61 to 78
Процедура Тест_КлючиХеша_ПустойМассив() Экспорт

Поля = Новый Массив;

ИсключаемыеПоля = Новый Соответствие;

Мокито.Обучение(пбп_ПредопределенныеЗначенияПереопределяемый)
.Когда("ИсключаемыеПоляДляРасчетаХешаЭлемент")
.Вернуть(ИсключаемыеПоля)
.Прогон();

Ожидаемое = Новый Структура;

Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля);

ЮТест.ОжидаетЧто(Результат).Равно(Ожидаемое);

КонецПроцедуры
Copy link

@coderabbitai coderabbitai bot Dec 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Необходимо исправить несоответствия в реализации

  1. Используется тип Соответствие для ИсключаемыеПоля, в то время как в других тестах используется Структура
  2. В вызове КлючиХешаПредопределенногоЭлемента отсутствует второй параметр, который присутствует в других тестах
-	ИсключаемыеПоля = Новый Соответствие;
+	ИсключаемыеПоля = Новый Структура;

-	Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля);
+	Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля, Ложь);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Процедура Тест_КлючиХеша_ПустойМассив() Экспорт
Поля = Новый Массив;
ИсключаемыеПоля = Новый Соответствие;
Мокито.Обучение(пбп_ПредопределенныеЗначенияПереопределяемый)
.Когда("ИсключаемыеПоляДляРасчетаХешаЭлемент")
.Вернуть(ИсключаемыеПоля)
.Прогон();
Ожидаемое = Новый Структура;
Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля);
ЮТест.ОжидаетЧто(Результат).Равно(Ожидаемое);
КонецПроцедуры
Процедура Тест_КлючиХеша_ПустойМассив() Экспорт
Поля = Новый Массив;
ИсключаемыеПоля = Новый Структура;
Мокито.Обучение(пбп_ПредопределенныеЗначенияПереопределяемый)
.Когда("ИсключаемыеПоляДляРасчетаХешаЭлемент")
.Вернуть(ИсключаемыеПоля)
.Прогон();
Ожидаемое = Новый Структура;
Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля, Ложь);
ЮТест.ОжидаетЧто(Результат).Равно(Ожидаемое);
КонецПроцедуры

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Результат = пбп_ПредопределенныеЗначения.КлючиХешаПредопределенногоЭлемента(Поля, Ложь); так можно не писать, необязательные параметры можем опустить, при этом будет использовано значение по умолчанию

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@denisushakov, спасибо за пояснение. Принял к сведению, что в функции КлючиХешаПредопределенногоЭлемента необязательные параметры можно не указывать, и будут использованы значения по умолчанию.


✏️ Learnings added
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#157
File: src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl:61-78
Timestamp: 2024-12-16T08:09:35.244Z
Learning: В функции `КлючиХешаПредопределенногоЭлемента` модуля `пбп_ПредопределенныеЗначения` необязательные параметры можно опускать, и тогда используются значения по умолчанию.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines 2 to 38
&Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()

ПараметрыМетода = Мокито.МассивПараметров();

ПрерватьВыполнение = Ложь;
Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
"ИсключаемыеПоляДляРасчетаХешаЭлемент",
ПараметрыМетода,
ПрерватьВыполнение);

Если НЕ ПрерватьВыполнение Тогда
Возврат ПродолжитьВызов();
Иначе
Возврат Результат;
КонецЕсли;

КонецФункции

&Вместо("ИсключаемыеПоляДляРасчетаХешаГруппа")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаГруппа()

ПараметрыМетода = Мокито.МассивПараметров();

ПрерватьВыполнение = Ложь;
Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
"ИсключаемыеПоляДляРасчетаХешаГруппа",
ПараметрыМетода,
ПрерватьВыполнение);

Если НЕ ПрерватьВыполнение Тогда
Возврат ПродолжитьВызов();
Иначе
Возврат Результат;
КонецЕсли;

КонецФункции
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Рефакторинг дублирующегося кода

В обеих функциях наблюдается идентичная структура кода. Рекомендуется выделить общую логику в отдельную вспомогательную функцию для уменьшения дублирования:

+// Выполняет перехват вызова метода
+//
+// Параметры:
+//  ИмяМетода - Строка - Имя перехватываемого метода
+//
+// Возвращаемое значение:
+//  Произвольный - Результат вызова
+Функция ВыполнитьПерехватМетода(ИмяМетода)
+    ПараметрыМетода = Мокито.МассивПараметров();
+    
+    ПрерватьВыполнение = Ложь;
+    Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
+        ИмяМетода,
+        ПараметрыМетода,
+        ПрерватьВыполнение);
+    
+    Если НЕ ПрерватьВыполнение Тогда
+        Возврат ПродолжитьВызов();
+    Иначе
+        Возврат Результат;
+    КонецЕсли;
+КонецФункции
+
 &Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
 Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
-    ПараметрыМетода = Мокито.МассивПараметров();
-    
-    ПрерватьВыполнение = Ложь;
-    Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
-        "ИсключаемыеПоляДляРасчетаХешаЭлемент",
-        ПараметрыМетода,
-        ПрерватьВыполнение);
-    
-    Если НЕ ПрерватьВыполнение Тогда
-        Возврат ПродолжитьВызов();
-    Иначе
-        Возврат Результат;
-    КонецЕсли;
+    Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаЭлемент");
 КонецФункции

 &Вместо("ИсключаемыеПоляДляРасчетаХешаГруппа")
 Функция Мок_ИсключаемыеПоляДляРасчетаХешаГруппа()
-    ПараметрыМетода = Мокито.МассивПараметров();
-    
-    ПрерватьВыполнение = Ложь;
-    Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
-        "ИсключаемыеПоляДляРасчетаХешаГруппа",
-        ПараметрыМетода,
-        ПрерватьВыполнение);
-    
-    Если НЕ ПрерватьВыполнение Тогда
-        Возврат ПродолжитьВызов();
-    Иначе
-        Возврат Результат;
-    КонецЕсли;
+    Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаГруппа");
 КонецФункции
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
&Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
ПараметрыМетода = Мокито.МассивПараметров();
ПрерватьВыполнение = Ложь;
Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
"ИсключаемыеПоляДляРасчетаХешаЭлемент",
ПараметрыМетода,
ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
Возврат ПродолжитьВызов();
Иначе
Возврат Результат;
КонецЕсли;
КонецФункции
&Вместо("ИсключаемыеПоляДляРасчетаХешаГруппа")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаГруппа()
ПараметрыМетода = Мокито.МассивПараметров();
ПрерватьВыполнение = Ложь;
Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
"ИсключаемыеПоляДляРасчетаХешаГруппа",
ПараметрыМетода,
ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
Возврат ПродолжитьВызов();
Иначе
Возврат Результат;
КонецЕсли;
КонецФункции
// Выполняет перехват вызова метода
//
// Параметры:
// ИмяМетода - Строка - Имя перехватываемого метода
//
// Возвращаемое значение:
// Произвольный - Результат вызова
Функция ВыполнитьПерехватМетода(ИмяМетода)
ПараметрыМетода = Мокито.МассивПараметров();
ПрерватьВыполнение = Ложь;
Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
ИмяМетода,
ПараметрыМетода,
ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
Возврат ПродолжитьВызов();
Иначе
Возврат Результат;
КонецЕсли;
КонецФункции
&Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаЭлемент");
КонецФункции
&Вместо("ИсключаемыеПоляДляРасчетаХешаГруппа")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаГруппа()
Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаГруппа");
КонецФункции

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (1)
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1)

23-42: ⚠️ Potential issue

Обнаружен недостижимый код после оператора возврата

В функции Мок_ИсключаемыеПоляДляРасчетаХешаГруппа код после строки 28 никогда не будет выполнен из-за оператора Возврат. Этот код дублирует логику, которая уже реализована в функции ВыполнитьПерехватМетода.

Примените следующие изменения:

 Функция Мок_ИсключаемыеПоляДляРасчетаХешаГруппа()
 	
 	ПараметрыМетода = Новый Массив;
 	
 	Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаГруппа", ПараметрыМетода);
-	
-	ПрерватьВыполнение = Ложь;
-	Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
-		"ИсключаемыеПоляДляРасчетаХешаГруппа",
-		ПараметрыМетода,
-		ПрерватьВыполнение);
-	
-	Если НЕ ПрерватьВыполнение Тогда
-		Возврат ПродолжитьВызов();
-	Иначе
-		Возврат Результат;
-	КонецЕсли;
 	
 КонецФункции
🧹 Nitpick comments (4)
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl (2)

5-11: Рекомендуется добавить обработку ошибок

Следует добавить проверку параметра МенеджерОбъекта на Неопределено и корректно обработать возможные исключения при вызове методов Мокито.

Предлагаемые изменения:

 Функция Мок_ИнициализироватьПредопределенныеЗначения(МенеджерОбъекта)
+    Если МенеджерОбъекта = Неопределено Тогда
+        ВызватьИсключение НСтр("ru='Параметр МенеджерОбъекта не может быть неопределен'");
+    КонецЕсли;
+    
+    Попытка
         ПараметрыМетода = Мокито.МассивПараметров(МенеджерОбъекта);
         
         ПрерватьВыполнение = Ложь;
         Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначения,
             "ИнициализироватьПредопределенныеЗначения",
             ПараметрыМетода,
             ПрерватьВыполнение);
+    Исключение
+        ВызватьИсключение НСтр("ru='Ошибка при инициализации мока: '") + ОписаниеОшибки();
+    КонецПопытки;

1-19: Добавьте документацию к методу

Рекомендуется добавить описание назначения метода, параметров и возвращаемого значения в формате документации 1С.

Предлагаемые изменения:

+// Выполняет подмену метода ИнициализироватьПредопределенныеЗначения для целей тестирования
+//
+// Параметры:
+//  МенеджерОбъекта - Произвольный - Объект, для которого выполняется инициализация предопределенных значений
+//
+// Возвращаемое значение:
+//   Произвольный - Результат выполнения метода
+//
 &Вместо("ИнициализироватьПредопределенныеЗначения")
 Функция Мок_ИнициализироватьПредопределенныеЗначения(МенеджерОбъекта)
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера/Ext/Module.bsl (2)

27-31: Рекомендуется вынести пустые значения в константы

Для улучшения поддерживаемости кода рекомендуется объявить константы для часто используемых значений:

+	ПустойАдресТаблицы = "";
+	
 	ОжидаемаяСтруктура = Новый Структура;
-	ОжидаемаяСтруктура.Вставить("АдресТаблицы", "");
+	ОжидаемаяСтруктура.Вставить("АдресТаблицы", ПустойАдресТаблицы);
 	ОжидаемаяСтруктура.Вставить("ЕстьСтроки", Ложь);

55-57: Рекомендуется вынести значения в константы и рассмотреть общую инициализацию

  1. Строковые литералы следует вынести в константы
  2. Структура ожидаемого результата дублируется между тестами
+	// В начале модуля
+	Перем АдресВременногоХранилища;
+	АдресВременногоХранилища = "АдресВременногоХранилища";
+	
+	// Общая процедура инициализации
+	Функция СоздатьСтруктуруРезультата(АдресТаблицы, ЕстьСтроки)
+		Результат = Новый Структура;
+		Результат.Вставить("АдресТаблицы", АдресТаблицы);
+		Результат.Вставить("ЕстьСтроки", ЕстьСтроки);
+		Возврат Новый ФиксированнаяСтруктура(Результат);
+	КонецФункции
+	
+	// В тесте
 	ОжидаемаяСтруктура = Новый Структура;
-	ОжидаемаяСтруктура.Вставить("АдресТаблицы", "АдресВременногоХранилища");
-	ОжидаемаяСтруктура.Вставить("ЕстьСтроки", Истина);
-	
-	Ожидаемое = Новый ФиксированнаяСтруктура(ОжидаемаяСтруктура);
+	Ожидаемое = СоздатьСтруктуруРезультата(АдресВременногоХранилища, Истина);
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4c25f5a and 6636000.

📒 Files selected for processing (7)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl (1 hunks)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера.xml (1 hunks)
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера/Ext/Module.bsl (1 hunks)
  • src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначения.xml (1 hunks)
  • src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl (1 hunks)
  • src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1 hunks)
  • src/cfe/YAXUnit/Configuration.xml (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначения.xml
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера.xml
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/cfe/YAXUnit/Configuration.xml
  • src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначения/Ext/Module.bsl
🔇 Additional comments (5)
src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl (2)

2-3: Корректное использование директивы подмены метода

Правильное применение директивы &Вместо и наименование мок-метода соответствует конвенциям.


13-17: Логика обработки результата реализована корректно

Правильное использование условного оператора для определения необходимости перехвата или продолжения выполнения.

src/cfe/YAXUnit/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1)

44-71: Корректная реализация вспомогательной функции

Функция ВыполнитьПерехватМетода имеет:

  • Подробную документацию с описанием параметров и возвращаемого значения
  • Правильную реализацию перехвата вызова метода
  • Корректную обработку результатов выполнения
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера/Ext/Module.bsl (2)

7-13: Несогласованность в параметризации тестов

Тест Тест_ИнициализироватьПредопределенныеЭлементы_ЕстьКонфликты параметризован только одним метаданным (Справочник.пбп_ИнтеграционныеПотоки), в то время как первый тест выполняется для трех разных типов метаданных. Рекомендуется:

  • Либо добавить остальные метаданные во второй тест
  • Либо документировать причину различия в параметризации тестов

1-72: Тесты написаны корректно, но есть возможности для улучшения

Общая структура тестов хорошая, покрыты основные сценарии. Рекомендуется внести предложенные улучшения для повышения качества и поддерживаемости кода.

Comment on lines 2 to 21
&Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()

ПараметрыМетода = Новый Массив;

Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаЭлемент", ПараметрыМетода);

ПрерватьВыполнение = Ложь;
Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
"ИсключаемыеПоляДляРасчетаХешаЭлемент",
ПараметрыМетода,
ПрерватьВыполнение);

Если НЕ ПрерватьВыполнение Тогда
Возврат ПродолжитьВызов();
Иначе
Возврат Результат;
КонецЕсли;

КонецФункции
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Обнаружен недостижимый код после оператора возврата

В функции Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент код после строки 7 никогда не будет выполнен из-за оператора Возврат. Этот код дублирует логику, которая уже реализована в функции ВыполнитьПерехватМетода.

Примените следующие изменения:

 Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
 	
 	ПараметрыМетода = Новый Массив;
 	
 	Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаЭлемент", ПараметрыМетода);
-	
-	ПрерватьВыполнение = Ложь;
-	Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
-		"ИсключаемыеПоляДляРасчетаХешаЭлемент",
-		ПараметрыМетода,
-		ПрерватьВыполнение);
-	
-	Если НЕ ПрерватьВыполнение Тогда
-		Возврат ПродолжитьВызов();
-	Иначе
-		Возврат Результат;
-	КонецЕсли;
 	
 КонецФункции
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
&Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
ПараметрыМетода = Новый Массив;
Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаЭлемент", ПараметрыМетода);
ПрерватьВыполнение = Ложь;
Результат = МокитоПерехват.АнализВызова(пбп_ПредопределенныеЗначенияПереопределяемый,
"ИсключаемыеПоляДляРасчетаХешаЭлемент",
ПараметрыМетода,
ПрерватьВыполнение);
Если НЕ ПрерватьВыполнение Тогда
Возврат ПродолжитьВызов();
Иначе
Возврат Результат;
КонецЕсли;
КонецФункции
&Вместо("ИсключаемыеПоляДляРасчетаХешаЭлемент")
Функция Мок_ИсключаемыеПоляДляРасчетаХешаЭлемент()
ПараметрыМетода = Новый Массив;
Возврат ВыполнитьПерехватМетода("ИсключаемыеПоляДляРасчетаХешаЭлемент", ПараметрыМетода);
КонецФункции

Comment on lines +49 to +53
Мокито.Обучение(пбп_ПредопределенныеЗначения)
.Когда("ИнициализироватьПредопределенныеЗначения")
.Вернуть(ТаблицаКонфликтов)
.Прогон()
;
Copy link

@coderabbitai coderabbitai bot Dec 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Отсутствует проверка вызова мока

Аналогично первому тесту, необходимо добавить проверку вызова мока:

 	Мокито.Обучение(пбп_ПредопределенныеЗначения)
 		.Когда("ИнициализироватьПредопределенныеЗначения")
 		.Вернуть(ТаблицаКонфликтов)
 		.Прогон()
 	;
+	
+	Мокито.Проверить(пбп_ПредопределенныеЗначения)
+		.Что("ИнициализироватьПредопределенныеЗначения")
+		.СПараметрами(ИмяОбъекта)
+		.БылВызван()
+	;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Мокито.Обучение(пбп_ПредопределенныеЗначения)
.Когда("ИнициализироватьПредопределенныеЗначения")
.Вернуть(ТаблицаКонфликтов)
.Прогон()
;
Мокито.Обучение(пбп_ПредопределенныеЗначения)
.Когда("ИнициализироватьПредопределенныеЗначения")
.Вернуть(ТаблицаКонфликтов)
.Прогон()
;
Мокито.Проверить(пбп_ПредопределенныеЗначения)
.Что("ИнициализироватьПредопределенныеЗначения")
.СПараметрами(ИмяОбъекта)
.БылВызван()
;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ты ошибаешься, такой функции нет в yaxunit

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@denisushakov, благодарю за уточнение. Вы правы, функция Мокито.Проверить отсутствует в yaxunit. Приношу извинения за ошибку.


✏️ Learnings added
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#157
File: src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера/Ext/Module.bsl:49-53
Timestamp: 2024-12-16T14:32:56.592Z
Learning: В yaxunit функция `Мокито.Проверить` отсутствует и не должна предлагаться для использования в тестах.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines +21 to +25
Мокито.Обучение(пбп_ПредопределенныеЗначения)
.Когда("ИнициализироватьПредопределенныеЗначения")
.Вернуть(ТаблицаКонфликтов)
.Прогон()
;
Copy link

@coderabbitai coderabbitai bot Dec 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Отсутствует проверка вызова мока

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

 	Мокито.Обучение(пбп_ПредопределенныеЗначения)
 		.Когда("ИнициализироватьПредопределенныеЗначения")
 		.Вернуть(ТаблицаКонфликтов)
 		.Прогон()
 	;
+	
+	Мокито.Проверить(пбп_ПредопределенныеЗначения)
+		.Что("ИнициализироватьПредопределенныеЗначения")
+		.СПараметрами(ИмяОбъекта)
+		.БылВызван()
+	;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Мокито.Обучение(пбп_ПредопределенныеЗначения)
.Когда("ИнициализироватьПредопределенныеЗначения")
.Вернуть(ТаблицаКонфликтов)
.Прогон()
;
Мокито.Обучение(пбп_ПредопределенныеЗначения)
.Когда("ИнициализироватьПредопределенныеЗначения")
.Вернуть(ТаблицаКонфликтов)
.Прогон()
;
Мокито.Проверить(пбп_ПредопределенныеЗначения)
.Что("ИнициализироватьПредопределенныеЗначения")
.СПараметрами(ИмяОбъекта)
.БылВызван()
;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ты ошибаешься, такой функции нет в yaxunit

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@denisushakov, спасибо за уточнение. Действительно, функции Мокито.Проверить нет в yaxunit. Принял к сведению для будущих ревью.


✏️ Learnings added
Learnt from: denisushakov
PR: firstBitSportivnaya/PSSL#157
File: src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияВызовСервера/Ext/Module.bsl:21-25
Timestamp: 2024-12-16T14:33:04.959Z
Learning: В фреймворке yaxunit отсутствует функция `Мокито.Проверить`.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Copy link

Passed

Analysis Details

0 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 0 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications No duplication information (0.40% Estimated after merge)

Project ID: PSSL

View in SonarQube

@ivanmolodec ivanmolodec merged commit ba582d0 into develop Dec 16, 2024
5 of 6 checks passed
@ivanmolodec ivanmolodec deleted the feature/cover-predefined-values-unit-tests-93 branch December 16, 2024 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tests Добавление тестов
Projects
None yet
2 participants