zombie phantom node node.js bdd mocha zombie.js

node.js - phantom - node js headless browser



Mocha y ZombieJS (4)

Escribí una larga respuesta a esta pregunta en la que se explicaban las consecuencias importantes de las pruebas asíncronas, las buenas prácticas (''before ()'', ''after ()'', TDD, ...), y se ilustra con un ejemplo del mundo real.

http://redotheweb.com/2013/01/15/functional-testing-for-nodejs-using-mocha-and-zombie-js.html

Estoy iniciando un proyecto de nodejs y me gustaría hacer BDD con Mocha y Zombiejs. Desafortunadamente, soy nuevo en casi todas las palabras de moda en esa oración. Puedo hacer que las pruebas de ejecución de Mocha y Zombiejs estén bien, pero parece que no puedo integrar las dos. ¿Es posible usar Mocha para ejecutar pruebas de Zombiejs?

Solo busco "hola mundo" para comenzar, pero un tutorial / ejemplo sería aún mejor.

¡Gracias!


Si desea usar cucumber-js para sus pruebas de aceptación y mocha para sus pruebas de "unidad" para una página, puede usar cuked-zombie (perdón por la publicidad).

Instálelo como se describe en el archivo léame en github, pero coloque su configuración mundial en un archivo llamado world-config.js

`/* globals __dirname */ var os = require(''os''); var path = require(''path''); module.exports = { cli: null, domain: ''addorange-macbook'': ''my-testing-domain.com'', debug: false };

Luego usa mocha con zombie en tus pruebas de unidad como esta:

var chai = require(''chai''), expect = chai.expect; var cukedZombie = require(''cuked-zombie''); describe(''Apopintments'', function() { describe(''ArrangeFormModel'', function() { before(function(done) { // execute once var that = this; cukedZombie.infectWorld(this, require(''../world-config'')); this.world = new this.World(done); // this inherits the whole world api to your test _.merge(this, this.world); }); describe("display", function() { before(function(done) { // executed once before all tests are run in the discribe display block var test = this; this.browser.authenticate().basic(''maxmustermann'', ''Ux394Ki''); this.visitPage(''/someurl'', function() { test.helper = function() { }; done(); }); }); it("something on the /someurl page is returned", function() { expect(this.browser.html()).not.to.be.empty; });


Si está utilizando Microsoft Visual Studio, es posible que desee echar un vistazo a Zombify Rob Ashton. Todo está integrado de manera aceptable para que pueda comenzar a escribir sus casos de prueba en JavaScript o CoffeeScript. Por cierto, aprender CoffeeScript te llevará una hora, y vale la pena cada minuto.


Suponiendo que ya haya instalado mocha , zombie y expect.js acuerdo con las instrucciones, esto debería funcionar para usted:

// Put below in a file in your *test* folder, ie: test/sampletest.js: var expect = require(''expect.js''), Browser = require(''zombie''), browser = new Browser(); describe(''Loads pages'', function(){ it(''Google.com'', function(done){ browser.visit("http://www.google.com", function () { expect(browser.text("title")).to.equal(''Google''); done(); }); }); });

Entonces deberías poder ejecutar el comando mocha desde la carpeta de la aplicación raíz:

# mocha -R spec Loads pages ✓ Google.com (873ms) ✔ 1 tests complete (876ms)

Nota: Si sus pruebas siguen fallando debido a los tiempos de espera, es mocha aumentar un poco el tiempo de espera de mocha utilizando el argumento -t . Revisa la documentación de mocha para detalles completos.