2011-11-20 49 views
6

Scala支持可重用參數化小黃瓜子句的任何BDD工具嗎?支持可重用參數化小黃瓜子句的Scala BDD工具

我希望能夠有使用規範這樣的能力:

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 

而且我想定義固定裝置,以小黃瓜條款由參數不同的只有一次,是這樣的:

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的一些擴展,還是一種用這種結果自己擴展它的方法?

回答