2010-06-08 7 views
5

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

+1

Có lẽ http://stackoverflow.com/questions/1068785/which-bdd-framework-for-java-do-you-use có thể hữu ích. – Mark

+1

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. –

Trả lời

8

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) 
    } 
    } 
} 
1

Nhìn vào Fitness, nếu bạn muốn tách mã kiểm tra khỏi văn bản chấp nhận. Nếu không, cả hai kiểu dáng SpecsScalaTest đều hỗ trợ kiểu BDD (Các thông số được viết thành kiểu BDD) và rất nhiều khung công tác Java khác hỗ trợ tốt.

6

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ó heresome 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.

1

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ự.

http://jbehave.org