BDD y TDD para node.js?
rspec cucumber (11)
¿Qué se usa para BDD y TDD con node.js?
Estoy acostumbrado a usar Cucumber + RSpec. ¿Qué es un buen combo para node.js?
Gracias
Echa un vistazo a Buster.JS . Creado por Christian Johansen, quien literalmente escribió el libro sobre pruebas de JavaScript .
Buster admite TDD y BDD . Realiza pruebas de navegador con la automatización del navegador (piense en JsTestDriver), prueba de páginas HTML estáticas de estilo QUnit, pruebas en navegadores sin cabeza (PhantomJS, jsdom) y más.
Echa un vistazo a mocha - (github)
También mocha-cakes , mi intento de sintaxis de pepino en mocha.
Estaba pasando por la misma preocupación el mes pasado.
Para BDD:
Aunque Mocha proporciona el estilo BDD por sus descripciones y declaraciones.
Para estilos como el pepino, puedes probar:
- tortas de moca
- moca-pepinillo
- cucumber.js
- kyuri
- moca-pepino
Todos ellos tienen sus propios estilos. Lamento que no pueda proporcionar fragmentos de trabajo ahora. Avíseme a qué nombre seleccionó. Me gustaría saber su opinión.
Existe el proyecto ''Votos'' para BDD en Node Vows , se ve muy bien. Es un poco diferente de RSpec / Cucumber, pero es bastante divertido
Paquete a (bdd y burla) https://npmjs.org/package/a
Sintaxis muy compacta, contexto separado de actos, actos encadenables. Corredor de línea Easy Cmd que busca recursivamente.
Si estás acostumbrado a rspec, Jasmine es bastante agradable. No lo he usado en Node.js, pero lo he usado para probar una aplicación de red troncal. Su sintaxis es muy similar a rspec. Tomado del sitio de arriba:
describe("Jasmine", function() {
it("makes testing JavaScript awesome!", function() {
expect(yourCode).toBeLotsBetter();
});
});
Está en la lista en el enlace provisto por Alfred arriba, pero como la gente enumeró Votos como ejemplo, pensé que le daría un golpe a Jasmine, especialmente porque es sintácticamente similar a rspec;)
Tal vez un poco más tarde, pero lo que estás buscando es Kyuri: https://github.com/nodejitsu/kyuri
"kyuri es una implementación de Pepino node.js con algunas palabras clave asíncronas adicionales. Admite más de 160 idiomas y exporta a los resquicios de VowsJS"
Además, nodejitsu parece haber creado una aplicación web para gestionar las especificaciones de las características de un proyecto Kyuri de forma colaborativa, se llama "prenup", yo le daría un vistazo.
También puedes probar yadda . Se conecta a otras bibliotecas de prueba que incluyen mocha, jazmín, casper y webdriver, pero también le permite escribir archivos de características correctas en lugar de anotar simplemente las pruebas in situ. Una prueba típica podría verse como ...
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);
});
});
Y el archivo de características ...
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
Y salida ...
Mocha Asynchronous Example
✓ A bottle falls from the wall
1 passing (12ms)
Yo también estaba buscando una buena implementación de Gherkin, encontré mocha-cakes / mocha-cakes-2, que eran agradables pero no muy completos. Así que construyo el mío con mocha como base, que tiene paridad con el lenguaje pepinillo, incluidos los Esquemas. También hace que sea fácil hacer referencia a los datos en su prueba. Es diferente a cucumber.js ya que son todos archivos en línea no separados. Puedes encontrar el proyecto aquí:
Actualizar
Mocha recibe mi voto ahora!
Puede echar un vistazo a la sección de módulos de prueba de la página de módulos node.js. Por ejemplo, Vows es un marco de BDD bastante popular.
Votos es un marco de desarrollo impulsado por el comportamiento para Node.js.