РАЗРАБОТКА ABAPP1L2

ABAP Unit: тесты и управляемые зависимости

Как строить небольшие проверки поведения ABAP-кода: тестовые классы, фикстуры, тестовые двойники и границы между модульными и интеграционными тестами.

Ревизия 2 Общие понятия Частичное покрытие Контекст: CTX-GENERAL документальная опора: недостаточно данных
Справочный материал. Контракты данных, архитектурные решения и ограничения применения. Источники приведены в материалах, где используются внешние основания.

ABAP Unit: тесты и управляемые зависимости#

ABAP Unit - встроенная в ABAP платформа проверки поведения небольших тестируемых единиц, например методов классов. Тесты пишутся на ABAP в тестовых классах и могут запускаться через инструменты разработки и проверки кода. Это позволяет повторять проверку после изменения логики и включать тесты в практику контроля качества; наличие тестового класса само по себе не доказывает полноту проверок.

Устройство теста#

Тестовый класс помечается FOR TESTING, а тестовые методы вызываются фреймворком ABAP Unit. Условия проверяются утверждениями, в частности методами CL_ABAP_UNIT_ASSERT. Каждый тест должен выражать наблюдаемое поведение и иметь понятное имя: исходное условие, действие и ожидаемый результат должны быть различимы.

Тестовая фикстура подготавливает минимальное состояние для проверки и очищает ресурсы, если они создавались. Изолируйте тестируемую логику от базы данных, часов, пользователя, внешнего сервиса и случайных исходных данных там, где эти зависимости не являются предметом теста. Для этого проектируйте явные интерфейсы и передавайте зависимости; тестовый двойник заменяет реальную зависимость контролируемым поведением.

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

Выбирать уровень проверки по риску#

Модульный тест проверяет логику изолированно и быстро. Он не подтверждает корректность customizing, авторизаций, интеграции с реальной базой, фонового планирования или результата полного финансового процесса. Для этого нужны отдельные интеграционные и сквозные проверки в подходящей системе с фиксированными входными данными и контрольными результатами.

У тестовых классов могут быть атрибуты уровня риска и длительности. Выбирайте их честно по побочным эффектам и стоимости выполнения. Документация SAP указывает, что ABAP Unit нельзя запускать в продуктивно используемых системах; исполняйте тесты в согласованной среде разработки или тестирования.

Какие выводы подтверждает проверка#

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

Вид свидетельства Что он подтверждает Чего он сам по себе не подтверждает
Документация SAP Описанный контракт, предпосылки и ограничения для указанного продукта и версии Наличие настройки, подходящих полномочий или успешный запуск в целевой системе
ABAP Unit Результат выбранных тестовых методов для кода, входов и зависимостей конкретного запуска Полноту тестовых случаев, интеграцию с реальной конфигурацией или правильность всего финансового процесса
ATC Найденные или не найденные замечания в выбранном наборе объектов при заданном варианте и доступных проверках Поведение во время выполнения; чистый результат ATC не заменяет ABAP Unit или процессную сверку
Отладчик и runtime/SQL trace Наблюдаемое поведение конкретного сценария и выбранные во время запуска показатели Корректность других входов, систем, нагрузок и ветвей выполнения
Интеграционная или сквозная проверка с финансовой сверкой Результат конкретного потока с зафиксированными данными, настройками и контрольными суммами Все возможные сценарии и версии, которые не входили в проверку

Для воспроизводимости прикладывайте идентификатор системы и клиента, продукт и релиз, версию кода или транспорта, дату запуска, имя теста или вариант ATC, область объектов, параметры и подмены зависимостей, фактический отчёт и ограничения охвата. Для трассы фиксируйте пользователя/запуск, сценарий и временной интервал. Для финансовой проверки сохраняйте исходный снимок и сверяйте ключи и суммы в нужных разрезах. Не записывайте секреты и персональные данные в общедоступные отчёты.

ABAP: отладчик, трассы и ATC подробнее разбирает, что показывают статический анализ, отладчик и трассировка. Здесь описан порядок интерпретации свидетельств; ABAP Unit, ATC и SAP runtime для этой публикации не запускались.

Короткий план тестирования#

  1. Сформулировать бизнес-инвариант, а не проверять детали реализации.
  2. Создать минимальную фикстуру с детерминированными данными.
  3. Проверить обычный случай и граничные/ошибочные сценарии.
  4. Изолировать внешние зависимости, явно задав ответ тестового двойника.
  5. Выполнить тест в целевом ABAP-репозитории и сохранить фактический отчёт.
  6. Дополнить модульный тест интеграционным контролем, если поведение зависит от платформы, конфигурации или данных.

Приведённая методика не является отчётом о выполнении тестов. Код и результаты в SAP runtime для этого материала не запускались.

Источники и статус доказательств#

Источники и документация

  1. How to Write ABAP Unit Test Classes ↗
  2. CLASS, FOR TESTING ↗

Источники нужны для самостоятельной проверки. Примеры и интерпретации на сайте могут быть учебными упрощениями.