Инструмент BDD для Scala, поддерживающий многоразовые параметризованные выражения Gherkin - PullRequest
6 голосов
/ 20 ноября 2011

Существует ли какой-либо 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 и спецификации, но не нашел такой возможности. Кажется, что ScalaTest может повторно использовать определенное предложение в другом сценарии, но похоже, что он не параметризован.

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

1 Ответ

5 голосов
/ 21 ноября 2011

Мы можем найти следующий пример в specs2 для реализации спецификации Given When Then: https://github.com/etorreborre/specs2/blob/1.6/src/test/scala/org/specs2/examples/GivenWhenThenSpec.scala

Надеюсь, это поможет.

...