Создание собственного / собственного DSL на основе Gherkin - PullRequest
0 голосов
/ 01 апреля 2020

TL; DR;

Как определить новый DSL поверх огурца? Так же, как каратэ:

https://github.com/intuit/karate

https://semaphoreci.com/community/tutorials/testing-a-java-spring-boot-rest-api-with-karate

Таким образом, они строят свои собственные DSL на вершине огурец. Так, как мы можем настроить огурец так же, как они сделали.

Объяснение:

Чтобы объяснить, Gherkin step def использует естественный язык, который не имеет никаких ограничений.

Я хочу для наложения некоторого ограничения, такого как RuleSpeak:

Каждый арендованный автомобиль должен принадлежать ровно одной ветви.

^^ ^^ ^^ ^^ ^^ ^^ Ключевое слово Обозначение ключевое слово Обозначение ключевое слово Обозначение для идентификатор Для концепции существительного для модальности Для квантификатора типа факта концепция существительного

Причина этого в том, что в нашей команде / проекте / организации есть огурец для A TDD (а не как в Drools), и, к сожалению, Как и многие другие организации, cucumber также служит инструментом тестирования интеграции. Это делает написание задачи «огурец / интеграция» очень болезненным для разработчиков. Поэтому я пытаюсь использовать гибрид подхода огурец / рупик, где огурец будет использовать регулярное выражение для соответствия шагу, но у шага будет некоторый дополнительный синтаксис ie, шаги будут соответствовать определенному формату, такому как выше.

Так можем ли мы определить ограниченное подмножество ключевых слов / слов, которые будут разрешены при написании шага огурца? Я имею в виду вместо написания любого произвольного шага, например,

«одна ветвь должна иметь одно транспортное средство»

или

«одно транспортное средство должно принадлежать одной ветке»

et c, как и многие другие варианты.

Мы должны разрешить разработчикам писать, используя несколько выбранных словарей и для каждой позиции. Также определить парсер / язык / оператор. Это означает, что если используется определенное слово, будет выполнено определенное действие / операция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...