BDD in Scala - Does it have to be ugly?
Question: I've used [lettuce](http://lettuce.it) for python in the past. It is a simple
BDD framework where specs are written in an external plain text file.
Implementation uses regex to identify each step, proving reusable code for
each sentence in the specification.

Using scala, either with [specs2](http://etorreborre.github.com/specs2/) or
[scalatest](http://www.scalatest.org/) I'm being forced to write the the
specification alongside the implementation, making it impossible to reuse the
implementation in another test (sure, we could implement it in a function
somewhere) and making it impossible to separate the test implementation from
the specification itself (something that I used to do, providing acceptance
tests to clients for validation).

Concluding, I raise my question: Considering the importance of validating
tests by clients, is there a way in BDD frameworks for scala to load the tests
from an external file, raising an exception if a sentence in the test is not
implemented yet and executing the test normally if all sentences have been
implemented?


Answer: I've just discovered a [cucumber plugin for
sbt](http://blog.knoldus.com/2013/01/15/atdd-cucumber-and-scala/). Tests would
be implemented under test/scala and specifications would be kept in
test/resources as plain txt files. I'm just not sure on how reliable the
library is and if it will have support in the future.

Edit: The above is a wrapper for the following plugin wich solves perfectly
the problem and supports Scala. <https://github.com/cucumber/cucumber-jvm>

