Có Java hoặc Scala tương đương với Cucumber/SpecFlow? Một khả năng là sử dụng Cucumber với JRuby; bất kì thứ khác?Công cụ kiểm tra hành vi cấp độ tính năng cho Java/Scala
Trả lời
Hãy xem ScalaTest with Feature Spec. Thông số tính năng mẫu từ trang web ScalaTest:
import org.scalatest.FeatureSpec
import org.scalatest.GivenWhenThen
import scala.collection.mutable.Stack
class ExampleSpec extends FeatureSpec with GivenWhenThen {
feature("The user can pop an element off the top of the stack") {
info("As a programmer")
info("I want to be able to pop items off the stack")
info("So that I can get them in last-in-first-out order")
scenario("pop is invoked on a non-empty stack") {
given("a non-empty stack")
val stack = new Stack[Int]
stack.push(1)
stack.push(2)
val oldSize = stack.size
when("when pop is invoked on the stack")
val result = stack.pop()
then("the most recently pushed element should be returned")
assert(result === 2)
and("the stack should have one less item than before")
assert(stack.size === oldSize - 1)
}
scenario("pop is invoked on an empty stack") {
given("an empty stack")
val emptyStack = new Stack[String]
when("when pop is invoked on the stack")
then("NoSuchElementException should be thrown")
intercept[NoSuchElementException] {
emptyStack.pop()
}
and("the stack should still be empty")
assert(emptyStack.isEmpty)
}
}
}
specs cung cấp Thông số kỹ thuật bằng chữ "forms" để phát triển các thông số kỹ thuật Fit. Bạn có thể tìm thấy bài đăng giải thích lý do của nó here và some examples của what can be done với it.
Lưu ý rằng thư viện vẫn ở chế độ alpha vì tôi dự định sẽ chú ý hơn khi Scala 2.8.0 đã giải quyết.
JBehave hoạt động tốt với Scala. Ví dụ, trong bài viết này, http://jnb.ociweb.com/jnb/jnbJun2010.html có một liên kết đến tệp zip chứa ứng dụng mẫu sử dụng JBehave được triển khai hoàn toàn trong Scala.
liên kết trực tiếp đến zip: http://www.ociweb.com/jnb/jnbJun2010-scala-bowling.zip
JBehave được viết lại sau khi dưa chuột đã được phát hành, do đó chúng tôi cũng có thể sử dụng văn bản đơn giản. Gherkin đã không ra khi chúng tôi đã viết nó, do đó, nó không phân tích chính xác như nhau - sử dụng thẻ thay vì regexp - nhưng nó sẽ làm công việc tương tự.
Bây giờ bạn có thể sử dụng dưa chuột và xác định các bước của bạn trong Java hay tinh khiết Scala.
Ở đây bạn có hướng dẫn ngắn gọn và dễ dàng về cách sử dụng nó trong Scala với SBT: http://func.io/post/36452127031/pure-scala-bdd-made-easy-with-sbt-and-cucumber.
Có lẽ http://stackoverflow.com/questions/1068785/which-bdd-framework-for-java-do-you-use có thể hữu ích. – Mark
Bạn đã xem các khung công tác có sẵn chưa? Chỉ dành cho Scala, ScalaTest có hỗ trợ BDD, và Specs được thiết kế với BDD. Sau đó, có vô số các khung kiểm tra cho Java. Có lẽ nếu bạn có thể giải thích các yêu cầu của bạn tốt hơn một chút, thì sẽ dễ dàng hơn để trả lời câu hỏi này. –