Элементы данных фрагмента представляют собой имена и типы элементов данных, связанных с исходным кодом фрагмента.
Спецификацию элементов данных указывать не обязательно. Фрагмент может содержать несколько элементов данных; элементы данных одинаковых типов недопустимы.
Свойство | Описание |
---|---|
Тип данных | Обязательный атрибут. Возможные типы перечислены ниже в таблице. |
Имя | Обязательный атрибут. Задает допустимое имя переменной Java. Это имя применяется в исходном коде фрагмента датчика для обращения к данным. |
Тип данных | тип | Описание |
---|---|---|
className | String | В случае датчиков метода задает имя тестируемого класса во внутреннем формате, включая имя пакета; в случае датчиков вызова - имя класса вызываемого метода. Пример: org/eclipse/tptp/SomeClass |
methodName | String | В случае датчиков метода задает имя тестируемого метода; в случае датчиков вызова - имя вызываемого метода. В качестве имени методов для конструкторов используется <init>, для инициализаторов статических классов - <clinit>. |
methodSig | String | Аргумент метода и сигнатура типа возврата во внутреннем формате. Неприменимо для фрагментов staticInitializer. Пример: (Ljava/lang/String;)I |
thisObject | Object | Объект this (для методов экземпляра), переданный тестируемому методу. Неприменимо для фрагментов staticInitializer. thisObject имеет значение null для статических методов, для фрагментов entry, примененных к конструктору, и для фрагментов exit, примененных к конструкторам, при возникновении в конструкторах исключительных ситуаций. |
args | Object[] | Массив ссылок Object представляет аргументы тестируемого метода. В массиве содержится по одному элементу для каждого аргумента метода (не считая this). Аргументы простых типов помещаются во временные объекты соответствующих типов, например: Integer для int. Если метод не использует аргументы, это будет массив Object[] нулевого размера. Обратите внимание на то, что конструкторы для не статических внутренних классов имеют один скрытый аргумент на "внутреннем" уровне, таким образом, массив аргументов будет содержать больше элементов, чем находится в исходном коде. Неприменимо для фрагментов staticInitializer. |
returnedObject | Object | Ссылка на возвращаемый объект. Этот тип доступен только для фрагментов exit и afterCall. Если возвращаемый тип обрабатываемого счетчиком тестируемого метода является простым типом, возвращаемое значение помещается во временный объект подходящего типа. Если для метода указан тип void (не возвращает значение), либо в случае завершения работы в результате возникновения исключительной ситуации, то returnedObject будет иметь значение null. |
exceptionObject | Throwable | Ссылка на объект исключительной ситуации. Этот тип доступен только для фрагментов catch и exit. Если метод завершил работу нормально, exceptionObject будет иметь значение null. |
isFinally | boolean | Флаг, указывающий на то, был ли фрагмент вызван из оператора finally (истина) или из оператора catch (ложь). Допустимо только для фрагментов catch. |
staticField | (разные типы) | Объект, к которому обращаются по статическому полю. Его тип такой же, как и указанный в объекте staticField. Применимо только в том случае, если датчик объявляет поле staticField. (См. Пример staticField и staticInitializer.) Неприменимо для датчиков вызова. |
classSourceFile | String | Информация имени исходного файла, доступная из атрибутов отладки файла class. Если исходная информация не указана, classSourceFile будет иметь значение null. Для файла Java значением обычно является простое имя файла, без сведений о пути. Неприменимо для датчиков вызова. |
methodNames | String | Кодированный список имен методов и сигнатур. Порядок расположения методов в этом списке такой же, как и порядок расположения методов в methodLineTables, такой же порядок используется и элементом данных methodNumber. Список не включает в себя имена методов, вставленных в класс с помощью Probekit. Строка methodNames состоит из одного или более имен методов и сигнатур, разделенных символом плюса ("+"). Сигнатуры методов записаны во внутреннем формате Java. Например, класс с двумя методами, у которого метод run конструктора по умолчанию принимает String и возвращает int, имеет следующую строку methodNames: <init>()V+run(Ljava/lang/String;)I Неприменимо для датчиков вызова. |
methodLineTables | String | Кодированный список номеров строк, относящихся ко всем исполняемым модулям кода в классе. Список не включает в себя исполняемые модули, вставленные в класс с помощью Probekit. Сведения о кодировании приведены в разделе Формат строки methodLineTables. Неприменимо для датчиков вызова. |
methodNumber | Integer | Индексный номер в таблице methodNames для метода, в который вставлен фрагмент датчика. Неприменимо для датчиков вызова и фрагментов staticInitializer. |
executableUnitNumber | Integer | Номер исполняемого модуля, в который был вставлен фрагмент датчика. Этот тип данных допустим только для фрагментов датчиков executableUnit и catch. Если метод не содержит информации о номерах строк, у него будет лишь один исполняемый модуль с нулевым номером. |
Для того чтобы ввести элементы данных фрагмента датчика, выберите в дереве запись Fragment, затем с помощью кнопок Добавить и Изменить, расположенных в панели редактирования, укажите и задайте элементы данных.