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

Добавление мока для типа СообщениеСервисаИнтеграции #446

Merged
merged 5 commits into from
Nov 26, 2024

Conversation

edkuznetsov
Copy link
Contributor

@edkuznetsov edkuznetsov commented Nov 24, 2024

Ишуза #445

Описание изменений

Добавлен мок для типа "СообщениеСервисаИнтеграции" по аналогии с существующим "HTTPСервисЗапрос"


  • Добавлены тесты
  • Изменения отражены в документации (при необходимости)

Close #445

Summary by CodeRabbit

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

    • Добавлен новый раздел в документации о мок-имплементации для тестирования сообщений интеграции.
    • Введен новый объектный модуль для обработки сообщений интеграции с функциями для работы с данными.
    • Добавлен новый процессор данных для сообщений интеграции в конфигурацию системы.
    • Расширен функционал подсистемы за счет добавления нового компонента, связанного с сообщениями интеграции.
  • Тесты

    • Введены процедуры для тестирования функциональности сообщений интеграции, включая создание объектов и установку тела сообщения.
    • Обновлены процедуры тестирования для улучшения валидации структуры и свойств наборов тестов.
  • Документация

    • Обновлена документация, добавлены новые описания и примеры использования для мок-объектов.

Copy link
Contributor

coderabbitai bot commented Nov 24, 2024

Walkthrough

В данном запросе на изменение добавлен новый мок для типа СообщениеСервисаИнтеграции, который включает в себя описание его свойств и методов для тестирования интеграционных сообщений в платформе 1C:Enterprise. Внесены изменения в несколько файлов, включая документацию, модули и конфигурации, чтобы обеспечить поддержку нового функционала. Также добавлены тестовые процедуры для проверки работы нового мока и его методов.

Changes

Файл Изменения
documentation/docs/features/mocking/mocking.md Добавлен новый раздел о СообщениеСервисаИнтеграции, описывающий мок и его методы и свойства.
exts/yaxunit/src/CommonModules/ЮТТестовыеДанные/Module.bsl Добавлена функция СообщениеСервисаИнтеграции() для создания экземпляра мока.
exts/yaxunit/src/Configuration/Configuration.mdo Добавлен новый элемент <dataProcessors>DataProcessor.ЮТСообщениеСервисаИнтеграции</dataProcessors>.
exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ObjectModule.bsl Создан новый модуль объекта с определением свойств и методов для работы с сообщениями.
exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ЮТСообщениеСервисаИнтеграции.mdo Добавлен новый класс процессора данных ЮТСообщениеСервисаИнтеграции.
tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Module.bsl Добавлены процедуры для тестирования функциональности мока.
tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Обр_ЮТСообщениеСервисаИнтеграции.mdo Определен новый общий модуль для тестирования.
tests/src/Configuration/Configuration.mdo Добавлен новый элемент <commonModules>CommonModule.Обр_ЮТСообщениеСервисаИнтеграции</commonModules>.

Assessment against linked issues

Objective Addressed Explanation
Добавить новый мок для типа "СообщениеСервисаИнтеграции" (445)

Possibly related PRs

🐰 В мире мока, где тесты живут,
Сообщения интеграции к нам спешат,
Мы свойства и методы в модулях ведем,
Вместе с тестами, победы ждем!
Пусть код наш будет чист и ярок,
В моке весело, как в сказочном парке! 🌟


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 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.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

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.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

SonarQube Quality Gate passed! passed

bug 0 Bugs
vulnerability 0 Vulnerabilities
code_smell 0 Code Smells

No data Coverage
duplication_lt_3 0.00% Duplication

Copy link
Contributor

@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: 4

🧹 Outside diff range and nitpick comments (6)
tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Module.bsl (3)

21-28: Добавьте документацию к процедуре ИсполняемыеСценарии

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

Предлагаемое дополнение:

+// Процедура регистрирует тесты для проверки функциональности мока СообщениеСервисаИнтеграции
+//
+// Параметры:
+//  Нет
+//
 Процедура ИсполняемыеСценарии() Экспорт

32-33: Используйте более осмысленные константы для идентификаторов

Жёстко закодированные UUID усложняют понимание теста. Рекомендуется вынести их в именованные константы модуля или использовать более осмысленные значения для тестовых данных.

Пример улучшения:

-	Идентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000001");
-	ИдентификаторСообщенияСообщениеа = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000002");
+	ИдентификаторТестовогоСообщения = Новый УникальныйИдентификатор("6B6B98A1-2C35-4E42-9DA3-E29C8147859B");
+	ИдентификаторРодительскогоСообщения = Новый УникальныйИдентификатор("A3F5C7D8-1234-5678-90AB-CDEF01234567");

19-93: Добавьте общее описание модуля

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

Предлагаемое дополнение:

 #Область СлужебныйПрограммныйИнтерфейс
+
+// Модуль содержит тесты для проверки функциональности мока СообщениеСервисаИнтеграции.
+// Проверяется:
+// - Создание сообщения с различными параметрами
+// - Установка тела сообщения различными способами
+// - Корректность сохранения и чтения данных
 
 Процедура ИсполняемыеСценарии() Экспорт
exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ObjectModule.bsl (1)

21-42: Рекомендация по инициализации переменных

Переменные корректно объявлены с аннотациями пропуска проверок. Однако, рекомендуется добавить комментарии к каждой переменной, описывающие их назначение и тип данных.

documentation/docs/features/mocking/mocking.md (2)

150-155: Предлагаю дополнить введение примером использования

Для улучшения понимания предлагаю:

  1. Добавить простой пример использования мока в тестах
  2. Добавить ссылку на issue [NEW] Мок для типа СообщениеСервисаИнтеграции #445, которая объясняет предысторию появления этого мока

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

 ### `СообщениеСервисаИнтеграции`

 При тестировании интеграций с помощью 1С:Шина есть потребность тестировать сбор/разбор сообщений сервисов интеграции.

 У `СообщениеСервисаИнтеграции` отсутствует конструктор, поэтому был добавлен [`ЮТест.Данные().СообщениеСервисаИнтеграции`](/api/ЮТТестовыеДанные#IntegrationServiceMessage) реализующий интерфейс `СообщениеСервисаИнтеграции`
+
+Например:
+```bsl
+// Создаем и настраиваем мок сообщения
+Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции
+    .КодОтправителя("SENDER")
+    .КодПолучателя("RECIPIENT")
+    .УстановитьТелоКакСтрокуJSON("{""data"": ""test""}")
+    .Прогон();
+
+// Используем в тестах
+ПарсерСообщений.ОбработатьСообщение(Сообщение);
+```
+
+> Подробнее о предпосылках создания мока можно прочитать в [issue #445](ссылка-на-issue).

156-184: Предлагаю улучшить документацию методов

Есть несколько моментов для улучшения:

  1. В разделе методов указан только ПолучитьТелоКакПоток(), хотя в методах настройки упоминаются и другие методы работы с телом
  2. Не везде указаны английские эквиваленты названий методов и свойств

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

   * Методы
     * `ПолучитьТелоКакПоток()` \ `GetBodyAsStream()`
+    * `ПолучитьТелоКакДвоичныеДанные()` \ `GetBodyAsBinaryData()`
+    * `ПолучитьТелоКакСтроку()` \ `GetBodyAsString()`
 * Имеет методы настройки, реализованные в виде [текучих выражений](/docs/getting-started/fluent-api.md)
   * Установка тела
     * `УстановитьТелоКакДвоичныеДанные()`
     * `УстановитьТелоКакСтроку()`
     * `УстановитьТелоКакСтрокуJSON()`
   * Методы установки свойств
-    * `ДобавитьПараметр()`
+    * `ДобавитьПараметр()` \ `AddParameter()`
-    * `ДатаОтправки()`
+    * `ДатаОтправки()` \ `SetSendDate()`
-    * `ДатаУстаревания()`
+    * `ДатаУстаревания()` \ `SetExpirationDate()`
-    * `Идентификатор()`
+    * `Идентификатор()` \ `SetId()`
-    * `ИдентификаторСообщенияЗапроса()`
+    * `ИдентификаторСообщенияЗапроса()` \ `SetCorrelationId()`
-    * `КодОтправителя()`
+    * `КодОтправителя()` \ `SetSenderCode()`
-    * `КодПолучателя()`
+    * `КодПолучателя()` \ `SetRecipientCode()`
-    * `РазмерТела()`
+    * `РазмерТела()` \ `SetBodySize()`
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 5d8b56d and c56f4f5.

📒 Files selected for processing (10)
  • documentation/docs/features/mocking/mocking.md (1 hunks)
  • exts/yaxunit/src/CommonModules/ЮТТестовыеДанные/Module.bsl (1 hunks)
  • exts/yaxunit/src/Configuration/Configuration.mdo (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ObjectModule.bsl (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ЮТСообщениеСервисаИнтеграции.mdo (1 hunks)
  • exts/yaxunit/src/Subsystems/ЮТДвижок/Subsystems/ЮТМокирование/ЮТМокирование.mdo (1 hunks)
  • exts/yaxunit/src/Subsystems/ЮТПубличный/ЮТПубличный.mdo (1 hunks)
  • tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Module.bsl (1 hunks)
  • tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Обр_ЮТСообщениеСервисаИнтеграции.mdo (1 hunks)
  • tests/src/Configuration/Configuration.mdo (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ЮТСообщениеСервисаИнтеграции.mdo
  • tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Обр_ЮТСообщениеСервисаИнтеграции.mdo
🔇 Additional comments (8)
exts/yaxunit/src/Subsystems/ЮТДвижок/Subsystems/ЮТМокирование/ЮТМокирование.mdo (1)

21-21: Корректное добавление обработки для мока СообщениеСервисаИнтеграции

Добавление обработки ЮТСообщениеСервисаИнтеграции в подсистему мокирования выполнено корректно и соответствует существующей структуре подсистемы.

Выполним проверку реализации новой обработки:

✅ Verification successful

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

Обработка корректно реализована и интегрирована в систему:

  • Имеет все необходимые методы для работы с телом сообщения (УстановитьТелоКакДвоичныеДанные, УстановитьТелоКакСтроку, УстановитьТелоКакСтрокуJSON)
  • Содержит методы для установки всех требуемых параметров (ДатаОтправки, ДатаУстаревания, Идентификатор и др.)
  • Правильно зарегистрирована в конфигурации и подсистемах
  • Доступна через модуль ЮТТестовыеДанные для использования в тестах
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Проверка наличия и структуры обработки ЮТСообщениеСервисаИнтеграции

# Поиск файлов обработки
fd "ЮТСообщениеСервисаИнтеграции.mdo$"

# Поиск модуля объекта обработки
fd "ЮТСообщениеСервисаИнтеграции/Ext/ObjectModule.bsl$"

# Поиск использования обработки в тестах
rg -A 5 "ЮТСообщениеСервисаИнтеграции"

Length of output: 11287

tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Module.bsl (2)

1-17: Лицензионный заголовок корректен!

Заголовок содержит все необходимые элементы лицензии Apache 2.0 и информацию об авторских правах.


65-65: Проверьте обработку различных кодировок

Текущая реализация использует только UTF8. Рекомендуется добавить тесты для проверки работы с другими кодировками, которые могут использоваться в реальных сценариях интеграции.

Для проверки поддержки кодировок в существующем коде:

Also applies to: 73-73, 80-80, 87-87

tests/src/Configuration/Configuration.mdo (1)

35-35: Корректное добавление модуля в конфигурацию

Добавление общего модуля Обр_ЮТСообщениеСервисаИнтеграции соответствует принятым соглашениям об именовании и структуре конфигурации. Модуль логически размещен рядом с другими модулями для тестирования.

Выполним проверку регистрации модуля в подсистемах:

✅ Verification successful

Модуль корректно добавлен в конфигурацию

Модуль Обр_ЮТСообщениеСервисаИнтеграции зарегистрирован в конфигурации и правильно размещен в подсистеме ЮТМокирование вместе с другими модулями для тестирования, что подтверждается содержимым файла конфигурации.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify module registration in subsystems
# Expected: The module should be registered in testing subsystems similar to HTTPСервисЗапрос

rg -l "Обр_ЮТСообщениеСервисаИнтеграции" --type xml

Length of output: 271


Script:

#!/bin/bash
# Let's try a different approach to find the module registration
# First, let's find all subsystem files
fd "Subsystem\.mdo$"

# Then let's check the Configuration.mdo file content to verify the module is actually there
cat tests/src/Configuration/Configuration.mdo

Length of output: 5687


Script:

#!/bin/bash
# Let's check the content of the subsystem file to see if our module is registered there
cat tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystem.mdo

# Also check if there are any other subsystem files that might contain our module
fd -t f -e mdo . | grep -i subsystem | xargs cat

Length of output: 34520

exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ObjectModule.bsl (2)

1-20: Корректное оформление лицензии и директивы препроцессора

Лицензионное соглашение Apache 2.0 и директива препроцессора оформлены правильно.


1-259: Реализация соответствует требованиям

Мок для типа СообщениеСервисаИнтеграции реализован корректно, следуя паттерну текучего интерфейса и обеспечивая необходимую функциональность для тестирования. Код хорошо структурирован и документирован. После внесения предложенных исправлений, код будет полностью готов к использованию.

exts/yaxunit/src/Configuration/Configuration.mdo (1)

165-165: Корректное добавление обработки в конфигурацию

Добавление обработки ЮТСообщениеСервисаИнтеграции в конфигурацию выполнено корректно и соответствует поставленной задаче по созданию мока для тестирования сообщений сервиса интеграции. Размещение элемента в секции dataProcessors соответствует структуре конфигурации и согласуется с существующей обработкой ЮТHTTPСервисЗапрос.

✅ Verification successful

Подтверждение корректности добавления обработки в конфигурацию

Обработка ЮТСообщениеСервисаИнтеграции корректно интегрирована в конфигурацию:

  • Правильно размещена в подсистемах ЮТПубличный и ЮТМокирование
  • Имеет корректную структуру метаданных и модуль объекта с необходимым функционалом
  • Соответствует общей архитектуре тестового фреймворка и другим mock-объектам
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the configuration structure and related files

# Check if the data processor files exist
fd -t f "ЮТСообщениеСервисаИнтеграции" -e xml -e mdo

# Check if there are any references to the new data processor
rg -l "ЮТСообщениеСервисаИнтеграции"

Length of output: 1227


Script:

#!/bin/bash
# Check the content of the data processor module and configuration files
cat exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ЮТСообщениеСервисаИнтеграции.mdo
cat exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ObjectModule.bsl

# Check subsystem configurations to verify proper integration
cat exts/yaxunit/src/Subsystems/ЮТПубличный/ЮТПубличный.mdo
cat exts/yaxunit/src/Subsystems/ЮТДвижок/Subsystems/ЮТМокирование/ЮТМокирование.mdo

Length of output: 11969

exts/yaxunit/src/CommonModules/ЮТТестовыеДанные/Module.bsl (1)

1098-1106: Реализация выглядит корректной!

Функция СообщениеСервисаИнтеграции() реализована по аналогии с существующей функцией HTTPСервисЗапрос(), что обеспечивает единообразие кодовой базы. Функция корректно размещена в серверной директиве компиляции и имеет правильное экспортное объявление.

Давайте проверим наличие соответствующей обработки и её реализацию:

✅ Verification successful

Let me generate one more verification to check the mock implementation:


Реализация мока полностью соответствует требованиям!

Проверка показала, что:

  • Мок корректно реализован в виде обработки ЮТСообщениеСервисаИнтеграции
  • Имеет все необходимые методы для работы с телом сообщения и метаданными
  • Методы следуют паттерну текучего интерфейса (возвращают ЭтотОбъект)
  • Мок активно используется в тестах модуля Обр_ЮТСообщениеСервисаИнтеграции
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Проверяем наличие обработки ЮТСообщениеСервисаИнтеграции
fd "ЮТСообщениеСервисаИнтеграции" --type f

# Проверяем использование мока в тестах
rg "СообщениеСервисаИнтеграции\(\)" -A 5

Length of output: 4450


Script:

#!/bin/bash
# Check the mock implementation
rg -g "*.bsl" "ЮТСообщениеСервисаИнтеграции" exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ -A 10

Length of output: 12741

@github-actions github-actions bot deleted a comment from coderabbitai bot Nov 24, 2024
@github-actions github-actions bot deleted a comment from coderabbitai bot Nov 24, 2024
@github-actions github-actions bot deleted a comment from coderabbitai bot Nov 24, 2024
@github-actions github-actions bot deleted a comment from coderabbitai bot Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from edkuznetsov Nov 24, 2024
@github-actions github-actions bot deleted a comment from coderabbitai bot Nov 24, 2024
Copy link
Contributor

@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 (3)
tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Module.bsl (3)

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

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

  • Проверка обработки некорректных параметров
  • Проверка граничных значений дат
  • Проверка обработки пустых идентификаторов

Пример добавления тестового сценария:

ЮТТесты.Тег("Мокирование")
	.ДобавитьТест("Конструктор")
	.ДобавитьТест("УстановитьТело")
	.ДобавитьТест("ПроверкаНекорректныхПараметров")
;

32-33: Рассмотрите использование генерации идентификаторов

Использование жестко закодированных UUID может усложнить поддержку тестов. Рекомендуется создать вспомогательную функцию для генерации тестовых идентификаторов.

Пример реализации:

Функция СоздатьТестовыйИдентификатор(НомерИдентификатора)
	Возврат Новый УникальныйИдентификатор(
		СтрШаблон("00000000-0000-0000-0000-%012d", НомерИдентификатора));
КонецФункции

19-93: Рекомендуется улучшить документацию кода

Для улучшения поддержки кода рекомендуется:

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

Пример оформления документации:

// Модуль тестирования мока СообщениеСервисаИнтеграции
//
// Параметры:
//  <Нет>
//
// Пример:
//  ЮТест.ЗапуститьТест("Обр_ЮТСообщениеСервисаИнтеграции");
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between c56f4f5 and 4f1250e.

📒 Files selected for processing (1)
  • tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Module.bsl (1 hunks)
🔇 Additional comments (2)
tests/src/CommonModules/Обр_ЮТСообщениеСервисаИнтеграции/Module.bsl (2)

1-17: Лицензионный заголовок корректен!

Заголовок содержит актуальную информацию об авторских правах и условиях лицензии Apache 2.0.


57-91: Необходимо добавить проверку некорректных данных

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

  • Проверку установки некорректных JSON данных
  • Проверку установки пустых значений
  • Проверку установки данных неподдерживаемого формата

Пример проверки некорректных данных:

// Проверка некорректного JSON
Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции();
ЮТест.ОжидаетЧто(Сообщение)
	.Метод("УстановитьТелоКакСтрокуJSON")
	.СПараметрами("{некорректный json}")
	.ВыбрасываетИсключение();

Copy link
Contributor

@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 (1)
exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ObjectModule.bsl (1)

131-137: Рассмотрите возможность проверки типов входных параметров

Чтобы повысить надежность методов, рекомендуется проверять типы входных параметров Значение, чтобы убедиться, что они соответствуют ожидаемым типам (например, Дата, Строка, УникальныйИдентификатор, Число). Это позволит своевременно обнаруживать некорректное использование методов и предотвращать возможные ошибки во время выполнения.

Also applies to: 145-151, 159-165, 173-179, 187-193, 201-207, 215-221

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between d54f0d9 and fb27036.

📒 Files selected for processing (1)
  • exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ObjectModule.bsl (1 hunks)
🔇 Additional comments (1)
exts/yaxunit/src/DataProcessors/ЮТСообщениеСервисаИнтеграции/ObjectModule.bsl (1)

226-240: Все пути выполнения функции возвращают значение

Ранее было отмечено, что не все пути выполнения функции ПолучитьТелоКакДвоичныеДанные() возвращают значение. Сейчас каждый возможный путь либо возвращает значение, либо вызывает исключение, что устраняет предыдущую проблему.

Copy link
Contributor

@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 (1)
documentation/docs/features/mocking/mocking.md (1)

150-155: Добавьте пример использования мока

Раздел хорошо описывает назначение мока, но было бы полезно добавить простой пример использования, аналогично разделу с HTTPСервисЗапрос. Это поможет разработчикам быстрее понять, как применять мок в своих тестах.

Предлагаю добавить пример:

 У `СообщениеСервисаИнтеграции` отсутствует конструктор, поэтому был добавлен [`ЮТест.Данные().СообщениеСервисаИнтеграции`](/api/ЮТТестовыеДанные#IntegrationServiceMessage) реализующий интерфейс `СообщениеСервисаИнтеграции`
+
+Пример использования:
+```bsl
+Сообщение = ЮТест.Данные().СообщениеСервисаИнтеграции()
+    .Идентификатор("MSG-001")
+    .КодОтправителя("SRC")
+    .КодПолучателя("DST")
+    .УстановитьТелоКакСтрокуJSON("{""data"": ""test""}")
+    .Прогон();
+```
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between fb27036 and 47e92ed.

📒 Files selected for processing (1)
  • documentation/docs/features/mocking/mocking.md (1 hunks)
🔇 Additional comments (1)
documentation/docs/features/mocking/mocking.md (1)

156-184: LGTM! Документация полная и хорошо структурирована

Документация следует единому стилю с другими моками и содержит все необходимые методы и свойства.

@edkuznetsov edkuznetsov requested a review from alkoleft November 25, 2024 21:59
@alkoleft alkoleft merged commit 97d5579 into bia-technologies:develop Nov 26, 2024
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[NEW] Мок для типа СообщениеСервисаИнтеграции
2 participants