Czy istnieje narzędzie BDD dla Scala obsługujące sparametryzowane klawenory Gherkin wielokrotnego użytku?Narzędzie BDD dla Scala obsługujące sparametryzowane klastrów wielokrotnego użytku
Chciałbym móc mieć możliwość korzystania specyfikacje, takie jak:
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
I chciałbym zdefiniować uchwyty do klauzul korniszon różniące się od parametru tylko raz, coś jak:
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")
}
Podane definicje klauzul wyglądające jak następująco:
"number $number is entered" {
calculator.enter(number)
}
"'$key' is pressed" {
calculator.press(key)
}
"result is $number" {
assert(calculator.getDisplayedNumber === number)
}
Przeglądałem podręczniki ScalaTest i Specs, ale nie znalazłem takiej funkcji. ScalaTest wydaje się być w stanie ponownie użyć zdefiniowanej klauzuli w innym scenariuszu, ale wygląda na to, że nie jest sparametryzowana.
Czy znasz narzędzia, które obsługują to, co chcę, lub np. niektóre rozszerzenia ScalaTest, czy sposób na samodzielne przedłużenie tego wyniku?
Wielkie dzięki, właśnie tego szukałem. –