2012-10-16 63 views
7

Jasmine是一個很好的JavaScript單元測試框架。它不僅考驗你的代碼,它提供了一個很好的方式,通過記錄它:Jasmine for C#和/或Java

  • 使用流利的BDD十歲上下的方式來定義測試,這本身恰如文檔
  • 試驗報告讀起來像文檔也

我想知道是否有任何可比的C#和/或Java存在。

回答

4

我剛剛在GitHub上遇到了NJasmine。我從來沒有用過它,但認爲這可能會幫助像我這樣的人在C#單元測試中要求Jasamine的真棒。

從GitHub的:

NJasmine是由JavaScript測試庫茉莉花(http://pivotal.github.com/jasmine/)爲C#/ .NET編程激發了RSpec的肥胖型測試語言。

given("some preconditions",() => { 

    var range = 10; 

    when("the system under test is ran",() => { 

     var sut = new SystemUnderTest(); 

     bool score = arrange(() => sut.Fire(range)); 

     then("win!",() => { 

      expect(() => score); 
     }); 
    }); 
}); 

可用上的NuGet:http://nuget.org/List/Packages/NJasmine

同樣,我不能保證這個,因爲我還沒有使用它,但我希望在這裏把這個信息會幫助別人做出明智的決定。

HTH

2

一個非常受歡迎的測試Java(和Groovy)框架Spock,其測試也喜歡閱讀書寫規範。

2

看看Cucumber-JVM實現BDD。它基於Java,但也適用於基於JVM的語言(Scala,Groovy)。

如果使用諸如Jenkins的持續集成系統,則會有一個名爲Cucumber Reports的報告插件可用。

4

Oleaster是用乾淨的簡單的語法一個Java測試框架,廣泛使用Java 8箭頭功能。它使用JUnit亞軍執行。從hompage

代碼示例:

@RunWith(OleasterRunner.class) 
public class OleasterIntroductionTest {{ 
    describe("A suite",() -> { 
     it("contains a spec with an expectation",() -> { 
      expect(40 + 2).toEqual(42); 
     }); 
    }); 
}} 
+0

什麼是有趣的雙大括號語法?我承認我以前沒見過。 Java 8也是新的嗎? – chiccodoro

+2

直接嵌套到類中的塊稱爲**實例初始化塊**,並在構造函數之前執行。請參閱http://stackoverflow.com/questions/3987428/what-is-an-initialization-block或[官方教程](http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html)瞭解詳情。它是在Java 8之前推出的。 – czerny

+0

@czemy好的,謝謝 – chiccodoro

3

JUnit 5將BDD-等,與@DisplayName,@Nested,等等。你可以看看at the documentation

GA版本尚未發佈,但應該很快到達(2016年底宣佈)。

+0

很高興看到JUnit現在支持它。通過「默認」測試框架,可以在Java中執行BDD TDD –