BDD y TDD para el nodo.js?


Qué se utiliza para BDD y TDD con node.js?

Estoy acostumbrado a usar Pepino + RSpec. Lo que es un buen combo para nodo.js?

Gracias

Author: Dave Schweisguth, 2011-01-16

11 answers

Update

Mocha obtiene mi voto ahora!


Puedes echar un vistazo a la sección testing modules del nodo.js modules page (en inglés). Por ejemplo Votos es un marco BDD bastante popular.

Vows es un framework de desarrollo basado en el comportamiento para Node.js.

 58
Author: Alfred,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-16 16:55:05

Echa un vistazo mocha - (github)

También mocha-cakes, mi intento de sintaxis de pepino en mocha.

 18
Author: Quang Van,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-11 07:12:35

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 backbone. Su sintaxis es muy similar a rspec. Tomado del sitio anterior:

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

Está listado en el enlace proporcionado por Alfred arriba, pero ya que la gente enumeró los votos como un ejemplo, pensé que le daría a Jasmine un golpe, especialmente porque es sintácticamente similar a rspec;)

 15
Author: Craig Monson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-14 00:14:55

Existe el proyecto 'Votos' para BDD en el Nodo http://vowsjs.org , se ve bastante bien. Es un poco diferente de RSpec/Pepino, pero es bastante divertido

 9
Author: Nikolay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-28 15:57:26

Tal vez un poco más tarde, pero lo que estás buscando es Kyuri: https://github.com/nodejitsu/kyuri

"kyuri es un nodo.implementación de js Cucumber con algunas palabras clave asíncronas adicionales. es compatible con más de 160 idiomas y las exportaciones a VOWSJS stubs "

Además, nodejitsu parece haber construido una aplicación web para administrar las especificaciones de características de Kyuri de un proyecto de forma colaborativa, se llama "prenup", yo le daría un vistazo.

 3
Author: Benja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-25 18:57:05

También puedes probar yadda. Se conecta a otras bibliotecas de pruebas como mocha, jasmine, casper y webdriver, pero también le permite escribir archivos de características adecuados en lugar de simplemente anotar las pruebas in situ. Una prueba típica podría parecerse...

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)
 3
Author: cressie176,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-30 18:33:00

Echa un vistazo a Buster.JS . Creado por Christian Johansen, quien literalmente escribió el libro sobre pruebas de javascript.

Buster soporta TDD y BDD. Realiza pruebas de navegador con automatización de navegador (piense en JsTestDriver), pruebas de páginas HTML estáticas de estilo QUnit, pruebas en navegadores sin cabeza (PhantomJS, jsdom) y más.

 2
Author: Tauren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-09 03:40:50

Paquete a (bdd y burla) https://npmjs.org/package/a

Sintaxis muy compacta, contexto separado de actos, actos encadenables. Fácil Cmd line runner que busca recursivamente.

 1
Author: Lars-Erik Roald,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-21 07:12:50

Pruebas unitarias: Mocha es ideal para pruebas unitarias.

BDD tests Si desea un marco de prueba BDD para Node.js entonces recomendaría el paquete Pepino .

 1
Author: Thomas Bratt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-17 16:48:48

Yo estaba pasando por la misma preocupación el mes pasado .

Para BDD:

Aunque Mocha proporciona el estilo BDD por sus declaraciones describe y it.

Para estilos como pepino, puedes probar:

  • mocha-cakes
  • mocha-pepinillo
  • pepino.js
  • kyuri
  • mocha-pepino

Todos tienen sus propios estilos. Lo siento, no puedo proporcionar fragmentos de trabajo ahora, hágamelo saber @Donald cuál selecciona. Me gustaría conocer su visión.

 0
Author: user3251882,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-27 13:40:57

Yo también estaba buscando una buena implementación de pepinillo, encontré mocha-cakes/mocha-cakes-2 que eran agradables pero no muy completos. Así que construyo el mío propio con mocha como base, que tiene paridad con el lenguaje del pepinillo, incluyendo Esquemas de Escenarios. También hace que sea fácil hacer referencia a los datos en su prueba. Es diferente al pepino.js como su todo en línea no archivos separados. Puedes encontrar el proyecto aquí:

Livedoc-mocha

 0
Author: dnp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-14 01:24:38