2012-10-16 8 views
7

Jasmine è un bel framework di test delle unità per JavaScript. Esso non solo mette alla prova il vostro codice, fornisce un bel modo per documentarlo da:Jasmine per C# e/o Java

  • Utilizzando un modo BDD-ish fluente per definire le prove che in sé quasi si legge come un documentazione
  • Il rapporto di prova si legge come un documentazione

Mi chiedo se esiste qualcosa di paragonabile per C# e/o Java.

risposta

4

Mi sono appena imbattuto in NJasmine su GitHub. Non l'ho mai usato, ma ho pensato che questo avrebbe potuto aiutare altri come me a volere il fantastico test con Jasamine in C#.

Dal GitHub:

NJasmine è un linguaggio di test RSpec-ish ispirato alla libreria JavaScript test di Jasmine (http://pivotal.github.com/jasmine/) per C#/programmazione .Net.

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

Disponibile su Nuget: http://nuget.org/List/Packages/NJasmine

Anche in questo caso, non posso garantire per questo, come io non ho usato, ma spero di mettere queste informazioni qui sarà aiutare gli altri prendere decisioni informate.

HTH

1

Un equivalente per Java sarebbe JBehave

2

Un quadro molto popolare per i test Java (e Groovy) è Spock, le cui prove anche leggere come specifiche scritte.

2

Dai un'occhiata a Cucumber-JVM per implementare BDD. È basato su Java, ma funziona anche con linguaggi basati su JVM (Scala, Groovy).

Se si utilizza un sistema di integrazione continua come Jenkins, è disponibile un plug-in di report denominato Cucumber Reports.

4

Oleaster è un framework di test Java con semplice sintassi pulito, ampiamente utilizzando Java 8 funzioni freccia. Viene eseguito utilizzando JUnit runner.

Esempio di codice da homepage:

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

Qual è la divertente sintassi a doppia parentesi? Ammetto di non averlo visto prima. È nuovo anche con Java 8? – chiccodoro

+2

Il blocco direttamente annidato in classe è chiamato ** blocco di inizializzazione dell'istanza ** ed è eseguito prima del costruttore. Vedi http://stackoverflow.com/questions/3987428/what-is-an-initialization-block o [tutorial ufficiale] (http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html) per dettagli.È stato introdotto prima di Java 8. – czerny

+0

@czemy OK, grazie – chiccodoro

3

JUnit 5 sarà BDD-like, con @DisplayName, @Nested, e così via. Puoi dare un'occhiata a at the documentation.

La versione GA non è ancora arrivata, ma dovrebbe essere presto disponibile (annunciato per la fine del 2016).

+0

È fantastico vedere JUnit che ora ha creato supporto per esso. Permettendo di fare BDD TDD in Java attraverso il framework di test "predefinito" –