2010-06-08 57 views
5

是否存在與Cucumber/SpecFlow等效的Java或Scala?一種可能是使用JRuby的Cucumber;任何其他?用於Java/Scala的功能級行爲測試工具

+1

也許http://stackoverflow.com/questions/1068785/which-bdd-framework-for-java-do-you-use可能會有所幫助。 – Mark 2010-06-08 20:14:32

+1

你看過可用的框架嗎?對於Scala來說,ScalaTest具有BDD支持,並且Specs在設計時考慮了BDD。然後有很多Java測試框架。也許如果你能更好地解釋你的需求,回答這個問題會更容易。 – 2010-06-08 22:02:10

回答

8

看一看ScalaTest with Feature Spec。從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

Fitness,如果你想從驗收文本單獨的測試代碼。否則,SpecsScalaTest都支持BDD風格(Specs被寫爲BDD風格),並且很多其他Java框架都支持它。

6

specs通過「forms」提供精確的規格來開發符合Fit的規格。你可以找到一篇文章解釋它的基本原理heresome exampleswhat can be doneit

但請注意,圖書館仍處於alpha模式,因爲一旦Scala 2.8.0已經解決,我打算給它更多關注。

1

JBehave被改寫黃瓜發佈後,讓我們也可以使用純文本。當我們寫它時,小黃瓜沒有出來,所以它不會解析完全相同 - 使用令牌而不是正則表達式 - 但它會做同樣的工作。現在

http://jbehave.org