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

Добавлен метод ФикцияНезаполненных #479

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

alexandr-yang
Copy link
Contributor

@alexandr-yang alexandr-yang commented Jan 5, 2025

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

Добавлен метод ФикцияНезаполненных для конструктора движений и конструктора тестовых данных


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

Close #462

Summary by CodeRabbit

  • Новые возможности

    • Добавлена возможность заполнения только незаполненных реквизитов в конструкторе тестовых данных
    • Расширены методы работы с фиктивными значениями объектов
    • Введен новый метод ФикцияНезаполненных для селективного заполнения атрибутов
  • Улучшения тестирования

    • Расширены тестовые сценарии для проверки заполнения полей объектов
    • Добавлены дополнительные проверки корректности заполнения реквизитов

Copy link

coderabbitai bot commented Jan 5, 2025

Walkthrough

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

Changes

Файл Изменения
exts/yaxunit/src/CommonModules/ЮТКонструкторТестовыхДанныхСлужебный/Module.bsl Добавлен параметр ТолькоНезаполненные в процедуру ФикцияРеквизитов
exts/yaxunit/src/DataProcessors/ЮТКонструкторДвижений/* Добавлен метод ФикцияНезаполненных, обновлена сигнатура ФикцияРеквизитов
exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/* Добавлен метод ФикцияНезаполненных, обновлена сигнатура ФикцияРеквизитов
tests/src/CommonModules/*/Module.bsl Добавлены тестовые процедуры ФикцияНезаполненных

Assessment against linked issues

Objective Addressed Explanation
Добавить метод ФикцияНезаполненных(ИменаРеквизитов)
Упрощение создания тестовых данных

Possibly related PRs

Poem

🐰 В мире тестов, где данные живут,
Новый метод повелел приют!
ФикцияНезаполненных - герой,
Пробелы заполнит он порой!
Кролик радостно смеётся,
Код тестовый бьётся! 🧪


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.

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

@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

🧹 Nitpick comments (4)
exts/yaxunit/src/DataProcessors/ЮТКонструкторДвижений/Forms/КлиентскийКонструктор/Module.bsl (1)

144-145: Вынос кода инициализации
Возврат ЭтотОбъект обеспечивает цепочечные вызовы, сохраняя общий стиль. Убедитесь, что метод корректно документирован для других разработчиков.

exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/Forms/КлиентскийКонструктор/Module.bsl (2)

113-115: Консистентность параметров
Передача Ложь в ФикцияРеквизитов согласована с аналогичными методами в других модулях. Рекомендуется единообразное описание в комментариях для простоты сопровождения.


135-137: Уточнение документации
Функция возвращает объект для продолжения построения. Это верно в обоих сценариях (заполненные и незаполненные реквизиты). Убедитесь, что данный аспект описан в Wiki проекта, чтобы другие разработчики понимали цепочку вызовов.

tests/src/CommonModules/Обр_ЮТКонструкторДвижений_МО/Module.bsl (1)

219-225: Уточнить формулировку сообщений в проверках
Сообщения вида «Товар должен быть заполнен» и «Количество должно быть заполнено» выглядят корректно. При необходимости можно добавить более детальные разъяснения (например, «Товар должен быть заполнен справочной ссылкой»), если это часто вызывает путаницу у разработчиков или тестировщиков.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ed43933 and 98cd5b1.

📒 Files selected for processing (7)
  • exts/yaxunit/src/CommonModules/ЮТКонструкторТестовыхДанныхСлужебный/Module.bsl (2 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТКонструкторДвижений/Forms/КлиентскийКонструктор/Module.bsl (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТКонструкторДвижений/ObjectModule.bsl (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/Forms/КлиентскийКонструктор/Module.bsl (1 hunks)
  • exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/ObjectModule.bsl (1 hunks)
  • tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl (2 hunks)
  • tests/src/CommonModules/Обр_ЮТКонструкторДвижений_МО/Module.bsl (3 hunks)
🔇 Additional comments (15)
exts/yaxunit/src/DataProcessors/ЮТКонструкторДвижений/ObjectModule.bsl (3)

117-119: Уточните назначение логического параметра
Строка 117 добавляет вызов ФикцияРеквизитов с параметром Ложь. Убедитесь, что это поведение согласовано с другими вызовами, а также что документация описывает, как именно использование Ложь влияет на логику заполнения.


122-136: Метод добавляет полезную функциональность
Добавленный метод «ФикцияНезаполненных» четко разделяет логику заполнения реквизитов: заполняет только ещё не заполненные. Это повышает гибкость конструкторов.


137-138: Проверка соответствия требованиям
Вызов ФикцияРеквизитов с Истина корректно отражает заданную функциональность, но стоит убедиться, что вызываемый метод должным образом игнорирует уже заполненные поля. Тесты на это поведение крайне рекомендуются.

exts/yaxunit/src/DataProcessors/ЮТКонструкторДвижений/Forms/КлиентскийКонструктор/Module.bsl (2)

123-125: Изменение параметра для «ФикцияРеквизитов»
Обращение с явной передачей Ложь уточняет, что все поля должны быть заполнены, а не только пустые. Это помогает избежать скрытых ошибок при массовом заполнении.


128-143: Новый метод «ФикцияНезаполненных»
Метод логично дополняет существующий функционал, разделяя сценарии заполнения. Рекомендуется добавить в тест-кейсы проверку, чтобы гарантировать, что изначально уже установленные реквизиты не перезаписываются.

exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/Forms/КлиентскийКонструктор/Module.bsl (1)

118-134: Новое поведение для незаполненных реквизитов
«ФикцияНезаполненных» обеспечивает точечную генерацию данных там, где реквизиты пусты. Советуем проверить, как правило, обрабатываются составные типы, если поля уже частично заполнены.

exts/yaxunit/src/DataProcessors/ЮТКонструкторТестовыхДанных/ObjectModule.bsl (3)

108-110: Передача параметра «Ложь»
Вызов ФикцияРеквизитов(..., Ложь) указывает на заполнение всех указанных реквизитов. Убедитесь, что в случаях, когда требуется дифференцировать только незаполненные поля, используется корректный метод.


113-129: Пояснение логики «ФикцияНезаполненных»
Вся логика (строки 113–129) грамотно описывает назначение и поведение нового метода, а добавленный комментарий увеличивает понятность для будущих читателей.


130-131: Инициализация реквизитов
Убедитесь, что при вызове ФикцияРеквизитов(..., Истина) действительно игнорируются поля, уже заданные явно. Рекомендуется проверить множество тестовых сценариев.

tests/src/CommonModules/Обр_ЮТКонструкторДвижений_МО/Module.bsl (2)

31-31: Добавлен новый тест для проверки незаполненных реквизитов
Отлично, что добавили тест «ФикцияНезаполненных» в список исполняемых сценариев. Это повышает покрытие тестами и помогает контролировать корректное заполнение полей.


236-275: Новая процедура «ФикцияНезаполненных»
Код процедуры логичен: при передаче поля «Склад» со значением Неопределено метод «ФикцияНезаполненных» корректно заполняет его фиктивным значением. Итоговые проверки (Товар, Склад, Количество) реализованы последовательно и помогают убедиться, что незаполненные поля действительно были заполнены автоматикой.

tests/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl (2)

35-35: Добавлен тест «ФикцияНезаполненных» в контексте конструктора тестовых данных
Регистрировать тест в процедуре «ИсполняемыеСценарии» — правильный шаг, чтобы удобно группировать проверку логики заполнения реквизитов и поддерживать однородную архитектуру тестов.


308-327: Реализация процедуры «ФикцияНезаполненных» для курсов валют

  1. При установке «Курс=Неопределено» и вызове «ФикцияНезаполненных("Валюта, Курс")» подтверждается, что заполнение реквизитов происходит только для незаполненных значений.
  2. Проверка свойства «Период» и соответствие «Валюта» исходным данным обеспечивают полноту теста.
    Все выглядит целостно и соответствует назначению процедуры.
exts/yaxunit/src/CommonModules/ЮТКонструкторТестовыхДанныхСлужебный/Module.bsl (2)

86-86: Добавлен параметр «ТолькоНезаполненные»
Расширение сигнатуры процедуры «ФикцияРеквизитов» новым параметром повышает гибкость при заполнении полей. Хорошо, что есть возможность пропускать те реквизиты, которые уже имеют значение.


100-106: Проверка «ТолькоНезаполненные»
Логика Если ЗначениеЗаполнено(...) Тогда Продолжить; корректна и гарантирует, что уже установленное поле не будет перезаписано фиктивным значением. Это упрощает тестовые сценарии и уменьшает риск перезатирания значений.

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] Добавить метод ФикцияНезаполненных(ИменаРеквизитов)
1 participant