Есть ли какой-нибудь инструмент BDD для Scala поддержка многоразовых параметризованных предложений Gherkin?
Я бы хотел иметь возможность использовать такие спецификации:
Given number 4 is entered
When "+" is pressed
And number -1 is entered
And "*" is pressed
And number 2 is entered
And "=" is pressed
Then result is 6
И я хотел бы определять фикстуры для предложений Gherkin, отличающихся параметром только один раз, например:
scenario("(4+(-1)) * 2 = 6") {
given("number 4 is entered")
when("'+' is pressed")
and("number -1 is entered")
and("'*' is pressed")
and("number 2 is entered")
and("'=' is pressed")
then("result is 0")
}
Приведенные определения предложений выглядят следующим образом:
"number $number is entered" {
calculator.enter(number)
}
"'$key' is pressed" {
calculator.press(key)
}
"result is $number" {
assert(calculator.getDisplayedNumber === number)
}
Я просмотрел руководства ScalaTest и Specs, но не нашел такой возможности. Кажется, что ScalaTest может повторно использовать определенное предложение в другом сценарии, но похоже, что оно не параметризовано.
Знаете ли вы какие-нибудь инструменты, которые поддерживают то, что я хочу, или, например, какие-то расширения ScalaTest или способ расширить его самостоятельно с таким результатом?