Типы фрагментов датчиков

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

В следующей таблице перечислены типы фрагментов и приведены их описания, а также указано, применимы ли отдельные типы в датчиках метода и вызова: (Описание датчиков метода и вызова приведено в разделе Датчики метода и датчика вызова.)
Тип фрагмента Метод или вызов Описание
entry Метод Фрагменты entry выполняются при входе в метод. Фрагменты entry не выполняются для методов, вставленных в класс с помощью Probekit.
exit Метод Фрагменты exit выполняются при выходе из метода: при нормальном, при возникновении исключительной ситуации или когда исключительная ситуация приводит к выходу из метода. Фрагменты exit не выполняются для методов, которые были вставлены в класс с помощью Probekit.
catch Метод Фрагменты catch выполняются в начале оператора catch в методе или в начале оператора finally, выполняемого в результате возникновения исключительной ситуации.
staticInitializer Метод Фрагменты staticInitializer выполняются внутри инициализатора класса всех тестируемых методов. Если у класса еще нет статического инициализатора, он будет создан. Дополнительная информация приведена в разделе Тип фрагмента датчика staticInitializer.
executableUnit Метод Фрагменты executableUnit выполняются перед каждым исполняемым модулем кода в методах, совпадающих с целевым объектом датчика и фильтром, и для которых указан исходный код. Если метод не содержит информации о номерах строк, у него будет лишь один исполняемый модуль под номером ноль. Дополнительная информация приведена в разделе Тип фрагмента датчика executableUnit.
beforeCall Вызов Фрагменты beforeCall выполняются в вызывающем методе непосредственно перед вызовом целевого метода. Неприменимо для датчиков метода.
afterCall Вызов Фрагменты afterCall выполняются в вызывающем методе сразу после выхода из целевого метода, при обычном выходе или при возникновении исключительной ситуации в целевом методе. Неприменимо для датчиков метода.
Примечание:

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

В одном датчике нельзя использовать одновременно фрагменты датчиков метода и датчиков вызова. Однако их можно добавить в состав одного исходного файла Probekit (файл probe).

Пример:

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

Редактор Probekit, в котором показан список Тип фрагмента

Для следующих типов фрагментов датчиков доступна дополнительная информация:
Связанные справочники
Исходный код Java фрагмента датчика
Элементы данных фрагмента датчика