2011-11-20 21 views
6

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?

Odpowiedz

Powiązane problemy