2011-01-16 23 views
68

Cosa viene utilizzato per BDD e TDD con node.js?BDD e TDD per node.js?

Sono abituato a usare Cucumber + RSpec. Qual è una buona combinazione per node.js?

grazie

risposta

58

Aggiornamento

Mocha ottiene il mio voto ora!


Si potrebbe avere uno sguardo alla testing modules section dalla pagina moduli Node.JS. Ad esempio Vows è un framework BDD piuttosto popolare.

Vows è un framework di sviluppo guidato dal comportamento per Node.js.

+0

'interfaccia bdd' di Mocha diventa piuttosto vicino al RSpec, ma manca ancora il pigro' let'/'sottigliezze subject'. Ho creato un'interfaccia separata per la moka chiamata 'lazy-bdd' che ha queste aggiunte: https://www.npmjs.com/package/mocha-lazy-bdd – ghempton

9

C'è il progetto "Vows" per BDD sul nodo http://vowsjs.org, sembra molto carino. È un po 'diverso da RSpec/Cucumber, ma è piuttosto divertente

15

Se sei abituato a rspec, Jasmine è molto carino. Non l'ho usato su Node.js, ma l'ho usato per testare un'app backbone. La sintassi è molto simile a rspec. Tratto dal sito di cui sopra:

describe("Jasmine", function() { 
    it("makes testing JavaScript awesome!", function() { 
    expect(yourCode).toBeLotsBetter(); 
    }); 
}); 

E 'elencato nel link fornito da Alfred sopra, ma dal momento che folks Voti elencati come esempio, ho pensato di dare Jasmine un urto, soprattutto perché è sintatticamente simile a RSpec;)

+1

Questo sarebbe jasmine-node https://github.com/ mhevery/jasmine-node –

3

Forse un po 'più tardi, ma quello che stai cercando è Kyuri: https://github.com/nodejitsu/kyuri

"Kyuri è un'implementazione cetriolo node.js con alcune parole chiave in più asincroni supporta 160 + lingue e le esportazioni verso VowsJS. mozzi "

Inoltre, nodejitsu sembra aver creato un'app Web per la gestione di un progetto con le specifiche della funzione Kyuri in modo collaborativo, si chiama "prenup", vorrei dargli un'occhiata.

18

Partenza mocha - (github)

Inoltre mocha-cakes, il mio tentativo per la sintassi Cetriolo su moka.

+0

Grazie per aver menzionato le torte di moka! Molto bello :) –

+1

Perché * dovrei * Uso la sintassi cetriolo con moka _now_? – hellboy

2

Check out Buster.JS. Creato da Christian Johansen, che ha letteralmente scritto the book on javascript testing.

Buster supporta sia TDD che BDD. Esegue i test del browser con l'automazione del browser (si pensi a JsTestDriver), il test della pagina HTML statico in stile QUnit, il test nei browser senza testa (PhantomJS, jsdom) e altro.

1

pacchetto un (BDD e scherno) https://npmjs.org/package/a

sintassi molto compatto, contesto separato da atti, atti chainable. Correttore di linea Easy Cmd che ricerca in modo ricorsivo.

3

Si potrebbe anche provare yadda.Si collega ad altre librerie di test incluso mocha, gelsomino, casper &, ma consente anche di scrivere file di funzioni appropriati invece di limitarsi ad annotare i test in loco. Un test tipico potrebbe sembrare ...

var Yadda = require('yadda'); 
Yadda.plugins.mocha(); 

feature('./features/bottles.feature', function(feature) { 

    var library = require('./bottles-library'); 
    var yadda = new Yadda.Yadda(library); 

    scenarios(feature.scenarios, function(scenario, done) { 
     yadda.yadda(scenario.steps, done); 
    }); 
}); 

e il file di funzione ...

Feature: Mocha Asynchronous Example 

Scenario: A bottle falls from the wall 

Given 100 green bottles are standing on the wall 
when 1 green bottle accidentally falls 
then there are 99 green bottles standing on the wall 

E uscita ...

Mocha Asynchronous Example 
✓ A bottle falls from the wall 

1 passing (12ms) 
1

Unità Test: Mocha è grande per i test unitari.

Test BDD Se si desidera un framework di test BDD per Node.js, allora consigliamo il pacchetto Cucumber.

0

Stavo attraversando lo stesso problema il mese scorso.

Per BDD:

Anche se Mocha si offrono stile BDD dai loro descrivere e IT dichiarazioni.

Per gli stili come il cetriolo, si può provare:

  • moka torte
  • moca-cetriolino
  • cucumber.js
  • Kyuri
  • moka-cetriolo

Hanno tutti i loro stili. Mi dispiace di non poter fornire frammenti di lavoro adesso, fammi sapere @Donald quale scegli. Vorrei sapere la tua opinione.

0

Anch'io stavo cercando una buona implementazione di Gherkin, ho trovato mocha-cakes/mocha-cakes-2 che erano belle ma non molto complete. Così costruisco il mio con mocha come base, che ha la parità con la lingua del cetriolino, inclusi i contorni degli scenari. Rende anche facile riferimento ai dati nel test. È diverso da cucumber.js come tutti i file non in linea non separati. Potete trovare il progetto qui:

livedoc-mocha