Переменные теста Spock недоступны в диалоговом окне Evaluate Expression при отладке в IntelliJ IDEA

В следующем тесте Спока:

def 'simple assertion'() {
    expect:
    Math.max(a, b) == max

    where:
    a | b | max
    3 | 5 | 5
    4 | 9 | 9
    }

При установке точки останова в строке кода в ожидаемом блоке невозможно получить доступ к значению переменных (a, b) из диалогового окна Evaluate Expression... во время отладки. Возвращаемое исключение:

groovy.lang.MissingPropertyException: No such property: a, b for class: DUMMY

Единственный способ обойти это — вручную скопировать данные из части where в диалоговое окно оценки выражения.

Как я могу использовать оценить выражение БЕЗ необходимости вручную копировать значения из where части теста?

Я использую IntelliJ IDEA Ultimate 2022.1, работающий на macOS 12 Monterey с Groovy версии 4 и Gradle в качестве инструмента сборки.

Привет, добро пожаловать в StackOverflow, здесь вы можете задавать вопросы. То, что вы опубликовали, является констатацией факта без каких-либо вопросов, на которые вы хотите получить ответ. Вы просто хотели поделиться своим наблюдением или ищете ответы?

Leonard Brünings 15.05.2022 19:38

Привет @LeonardBrünings, я думаю, мой вопрос в том, как я могу оценить конкретную строку с переменными из области «где». Я отредактировал исходный пост. Спасибо.

Tomer 17.05.2022 13:59
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это сработало для меня, когда я явно объявил параметры.

def 'simple assertion'(int a, int b, int max) {
    expect:
    Math.max(a, b) == max

    where:
    a | b | max
    3 | 5 | 5
    4 | 9 | 9
}

Кажется, это было то, чего мне не хватало. Большое спасибо!

Tomer 17.05.2022 23:37

Другие вопросы по теме