Можно ли создать константы, которые являются родными для IntelliJ (не для разрабатываемой программы), для использования в диалоговом окне Evaluate Expression? - PullRequest
0 голосов
/ 13 апреля 2020

То, что я хочу сделать, это почти наверняка злоупотребление IDE, но это кажется полезным. Мне нужно создать тестовые сценарии для нескольких конечных точек API. Эти конечные точки часто имеют входные данные, которые являются либо перечислениями, либо производными от перечислений (например, путем конкатенации)

Для генерации набора тестовых входов я использую SQL: перекрестные соединения подвыборов, состоящих из группы буквальных значений. В некоторых случаях эти списки значений для данного перечисления могут быть довольно длинными.

Я обнаружил, что могу использовать «выражение выражения» для автоматической генерации этих подвыборов:

Arrays.asList(Enum.values()).map(Enum::toString).collect(Collectors.joining(
    "' UNION ALL SELECT '", 
    "(SELECT '", 
    "') as enums"));

Что мне интересно, так это то, что в IntelliJ есть способ установить константу, доступную для этого диалога, чтобы я мог вместо этого сделать что-то вроде:

Arrays.asList(Enum.values()).map(Enum::toString).collect(Collectors.joining(
    MYSQL_SUBSELECT_DELIM, 
    MYSQL_SUBSELECT_PREFIX, 
    MYSQL_SUBSELECT_SUFFIX);

Это сделало бы этот процесс намного более повторяемым .

1 Ответ

0 голосов
/ 14 апреля 2020

Это невозможно между сеансами отладки, но в течение одного сеанса вы можете использовать метки для требуемых строковых объектов и затем ссылаться на них в диалоговом окне оценки, используя name_DebugLabel: https://www.jetbrains.com/help/idea/examining-suspended-program.html#use -labels

...