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.