Меню

Проверка и тестирование программ. Операторы ASSERT и BREAK-POINT

Когда программист создает сложное приложение, состоящее из множества программных блоков (инклудов, функциональных модулей, классов и т.п.), то часто возникает необходимость в комплексной отладке такого приложения. Если исходного кода много, то такая задача становится довольно сложной.

В языке ABAP предусмотрен ряд операторов служащих этой цели. Сегодня мы рассмотрим два из них. Это операторы ASSERT и BREAK-POINT. Рассказ пойдет о базовой функциональности без углубления во все варианты использования. Зная с чего начать и куда смотреть, каждый сможет, при необходимости, изучить данную функциональность углубленно.

Большинство ABAP-программистов сталкивалось с простейшими вариантами этих операторов.

  • Оператор BREAK-POINT без параметров просто переводит выполнение программы в режим отладки.
  • Оператор ASSERT <логическое выражение>. В случае, когда <логическое выражение> = истина, данный оператор никак не влияет на выполнение программы. В случае, когда <логическое выражение> = ложь, выполнение программы прерывается с исключительной ситуацией ASSERTION_FAILED.

Теперь давайте рассмотрим расширенный вариант применения этих операторов. Для его использования нужно предварительно в транзакции SAAB создать Checkpoint group (Рис. 1)

Рис. 1. Создание Checkpoint group

После создания Группы можно использовать наши операторы с расширением ... ID group . Теперь операторы будут учитываться исполняющей системой ABAP, только если соответствующая group активна. (Активируется группа всё в той же транзакции SAAB нажатием на экранную кнопку .

Безусловно полезным является возможность ограничивать срабатывание операторов группы для заданных пользователей и серверов приложений (Рис. 2)

Рис. 2. Редактирование Checkpoint group

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

Операторы BREAK-POINT можно либо активировать (radiobutton Break в секции Breakpoints на Рис. 2), либо деактивировать (radiobutton Inactive в секции Breakpoints на Рис. 2).

Оператору ASSERT можно задать больше вариантов поведения. А именно:

  1. Деактивировать (Inactive в секции Assertions на Рис. 2)
  2. При истинном писать значения в Журнал (Logв секции Assertions на Рис. 2). В этом случае формат оператора будет выглядеть так: Сам Журнал можно считать на закладке (об этом речь пойдет ниже)
  3. Вызывать прерывание программы с исключительной ситуацией ASSERTION_FAILED (Abortв секции Assertions на Рис. 2)
  4. Для положения radiobutton Break действия будут различаться для выполнения программы в диалоговом режиме и для выполнения

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти