Доступ к именам свойств закрытия в блоке содержимого во время выполнения
Я хочу оценить свои блоки контента перед запуском моего набора тестов, но имена свойств замыканий уже в байт-коде. Я ищу самое чистое решение (по сравнению с анализом источника вручную).
Я уже попробовал решение, описанное в этом посте (и я все еще собираюсь выполнить некоторый RegEx/ синтаксический анализ), но смог заставить его работать только через механизм выполнения скриптов. Это не удалось в IDE и GroovyConsole. Вместо того чтобы встраивать скрипт Groovy в код проекта, я решил попробовать использовать нативные классы Geb.
Является ли использование предложения по расширению Geb Navigators здесь жизнеспособным для класса PageContentSupport в Geb, чьи contentTemplates содержат LinkedHashMap именно того, что мне нужно? Если да, может ли кто-нибудь дать руководство? Если нет, есть предложения?
1 ответ
В настоящее время невозможно получить доступ ко всем элементам контента для данной страницы / модуля. Не стесняйтесь создавать проблему для этого в трекере ошибок Geb, но помните, что все, что может предоставить Geb, это либо список имен элементов контента, либо карта этих имен для замыканий, которые создают эти элементы.
Наличие этой информации не является общим решением вашей проблемы, потому что элементы содержимого могут принимать параметры, и в некоторых случаях элементы содержимого будут доступны на странице только после выполнения некоторых других действий (например, вы должны нажать на кнопка, чтобы открыть раздел страницы, который использует ajax для извлечения контента). Поэтому я боюсь, что простое прохождение по всем элементам и проверка, не выдают ли они какие-либо ошибки, не обрежет это.
Я все еще пытаюсь понять, что "оценит" все элементы контента до запуска пакета. Проверяете ли вы, что ваши элементы контента все еще работают, чтобы получить более быструю обратную связь, чем запуск всего пакета? Я уверен, что вы не сможете полностью автоматизировать обнаружение определений контента, которые больше не работают. На мой взгляд, это будет больше усилий, чем оно того стоит.