2012-06-13 22 views
10

Estoy buscando convertir las pruebas de Jasmine en pruebas de Mocha debido a su capacidad de hacerlo antes (todas), sus capacidades de creación de informes y su compatibilidad con coffeescript.Accesorios compatibles con Mocha compatibles

Una cosa que no he podido encontrar es si Mocha (o junto con una biblioteca de afirmaciones compatible) admite dispositivos como jasmine-jquery (https://github.com/velesin/jasmine-jquery). ¿Existe tal funcionalidad para Mocha?

Estoy tratando de probar algunos códigos en el navegador (así que lo ejecutaré con el corredor de prueba html) que manipula el DOM. No deseo usar zombiejs porque preferiría ejecutarlo dentro del entorno en el que estoy probando.

Editar: Solo como referencia, mientras buscaba una solución, encontré el uso de grunt + mocha con un Implementación phantomjs. Esto tampoco funciona en mi caso, ya que me gustaría usar una versión personalizada de webkit.

Respuesta

10

Según lo que he podido descifrar, la respuesta es no. Esto probablemente se deba al hecho de que Mocha fue originalmente diseñado para soportar node.js. En nodo, la noción de accesorios en jasmine-jquery no existe porque un DOM/navegador no existe.

Mirando el soporte de los dispositivos para el plugin jasmine-jquery, me doy cuenta ahora de que puede que no sea tan difícil construir esta funcionalidad yo mismo. El mecanismo básico es usar jQuery para agregar una plantilla externa al DOM, mientras se conservan las referencias para que sea posible la limpieza y el almacenamiento en caché.

voy a actualizar esta respuesta si decido lanzar algo en github

Editar: aquí está - https://github.com/badunk/js-fixtures. El código y las especificaciones se copiaron esencialmente de jasmine-jquery con las dependencias eliminadas.

+0

¿Las js-fixtures también se replican cargando JSON, como 'getJSONFixture()' en jasmine-jquery? –

+0

no, eso no es compatible actualmente: lo consideraré como una mejora. Recepción de relaciones públicas: https://github.com/badunk/js-fixtures/issues/12 – badunk

+0

¿Sigue siendo así? Hay funciones de configuración y desmontaje en Mocha y admiten ejecutar pruebas en el navegador. – Indolering

0

¿Has probado zombie.js? Se instala con NPM y parece bastante agnóstico para probar el framework.

Esto me dio un objeto de ventana completamente funcional que pude decorar con jQuery.

Browser = require 'zombie' 

browser = new Browser() 
global.window = browser.window 
require '../src/js/vendor/jquery-1.7.1.min.js' 

ACTUALIZACIÓN:

he revisited este problema y parece que jQuery + jsdom (a través de la NGP) parece ser una solución más popular y de peso ligero. Ejemplo: http://www.netboy.pl/2012/10/testing-jquery-code-with-mocha-chai-and-jsdom/

+0

El enlace ya no funciona. – CodingWithSpike

+0

JSDOM y Zombie son un poco problemáticos. Por ejemplo, no hay soporte para 'classList',' dataset', y un montón de otras cosas que quería usar. Parece que volveré a phantomjs con esto. –

Cuestiones relacionadas