Я создаю DSL в Groovy для выполнения тестирования конечных точек Http, я хочу, чтобы он был естественным языком, и у меня есть объекты, которые имеют метод «с». Когда я связываю команды, которые мой метод правильно вызывается, но если метод «с» вызывается при компиляции сценария переменной, то при использовании существующего Groovy с (Closure) ». Файлы сценариев DSL считываются и выполняются с помощью GroovyShell.Методы Groovy DSL не найдены в зависимости от доступа
Это работает:
request = http GET to "${url}" with headers, [ 'Cookie': 'monster' ]
Но это не делает:
request = http GET to "${url}"
request with headers, [ 'Cookie': 'monster' ]
Объект, называемый написан на Java, но могут быть перемещены в Groovy. Это метод подпись:.
<returns this> with(HttpMethodElement eml, Object value);
Из ошибки возвращается, кажется, его не найти Java с помощью метода и жалуясь, что закрытие не передается в случае, если я добавить явную скобку я получаю метод не найдено исключения. Что сбивает с толку, как это было установлено, прежде чем он был назначен переменной ...
expecting EOF, found ',' @ line 6, column 31.
request = request with headers, [ 'Cookie': 'monster' ]
^
Я думаю, что Groovy может делать некоторые преобразования или обертку объекта Java в Groovy объекта в сценарии, но оба метода имеют отличные подписи и должны быть законными.
Да, и я думаю, что на самом деле правильная форма потребует нескольких проходов по линии. Жесткая проблема. –