Мы хотим создать простой язык для конкретного языка для написания тестовых скриптов для автоматической проверки интерфейса на основе XML одного из наших приложений. Пример теста:
- Получить входной XML файл из общей сетевой папки или хранилища подрывных средств
- Импортировать 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, который, возможно, будет проще создать парсер? Какой подход вы бы порекомендовали?