Мы хотим разработать простой предметно-ориентированный язык для написания тестовых сценариев для автоматического тестирования XML-интерфейса одного из наших приложений. Примерный тест будет:
- Получить входной XML-файл из сетевой общей папки или репозитория Subversion
- Импортируйте XML-файл с помощью интерфейса
- Убедитесь, что сообщение о результате импорта было успешным.
- Экспортируйте XML, соответствующий объекту, который был только что импортирован с помощью интерфейса, и проверьте его правильность.
Если предметно-ориентированный язык может быть декларативным, а его утверждения выглядят как можно ближе к моим предложениям в приведенном выше примере, это будет замечательно, потому что людям не обязательно быть программистами, чтобы понимать / писать / поддерживать тесты. Что-то типа:
newObject = GET FILE "http://svn/repos/template1.xml"
reponseMessage = IMPORT newObject
newObjectID = GET PROPERTY '/object/id/' FROM responseMessage
(..)
Но тогда я не уверен, как реализовать простой синтаксический анализатор для этого языка на Java. Еще в школе, 10 лет назад, я написал синтаксический анализатор языка, используя Lex и Yacc для языка C. Может быть, можно было бы использовать какой-нибудь эквивалент для Java?
Или я мог бы отказаться от декларативного языка и вместо этого выбрать язык на основе XML, для которого, возможно, было бы проще создать синтаксический анализатор? Какой подход вы порекомендуете?