unit testing - tipos - ¿Dónde deberían colocarse las pruebas unitarias en Meteor?
unit test c# (4)
A partir del 0.6.0, un enfoque interesante es utilizar exclusivamente paquetes inteligentes locales para su aplicación, que pueden ser probados fácilmente utilizando la prueba más pequeña de Meteor. Tendría el código mínimo simple que reside fuera de los paquetes inteligentes para iniciar su aplicación.
EDITAR: He hecho este enfoque, y ni siquiera necesito un código mínimo que resida fuera de los paquetes inteligentes. Toda la aplicación es paquetes.
¿Hay algún lugar donde mis pruebas puedan vivir sin Meteor?
Acabo de comenzar mi primer proyecto Meteor y comencé escribiendo pruebas unitarias con Mocha y should.js . Aunque mocha se ejecuta sin problemas, las pruebas impiden que Meteor se inicie ya que tiene problemas al usar el nodo require
lugar de __meteor_bootstrap__.require
( mensaje de error completo ).
Dicho esto, ¡ Meteor no debería realizar mis pruebas! De acuerdo con la documentación de Meteor , el código solo puede ubicarse en el cliente, servidor o ambos. Las suites de pruebas unitarias no pertenecen a estas categorías, y no soy la única persona confundida por la falta de una ubicación bien definida para realizar pruebas automatizadas de Meteor.
En este momento, mis pruebas se guardan en server/test/
, con el contenido de cada archivo envuelto en el bloque:
if (typeof(Meteor) === ''undefined'') { ... }
Mientras esto funciona, no se siente elegante. ¿Tiene alguna otra sugerencia para estructurar sus pruebas con su aplicación Meteor?
Actualización: en lugar de instrucciones explícitas en los documentos Meteor, seguí las convenciones de la carpeta Rails (4º párrafo), usando una carpeta llamada test
para almacenar mis activos de prueba. Luego moví esto al server/test
ya que no quería que se cargara en el cliente.
Coloque sus archivos de prueba en la carpeta de tests
y debería estar bien. Si su aplicación es tal que tiene varios archivos anidados en la carpeta del server
o del client
, puede replicar una estructura de carpetas similar dentro de su tests/client
o en el directorio de tests/server
. No es una regla, pero creo que ayuda para el mantenimiento y he tenido la experiencia de pasar horas depurando el error de clase faltante que simplemente se resolvió organizando la estructura del archivo en la carpeta de prueba.
Dado que esta es una pregunta de 2012, y no hay una sola respuesta integral aquí, me gustaría intentar una aquí.
Este es un buen punto de partida para comenzar a pensar en probar su proyecto de meteorito.
En pocas palabras Paso 1: meteoro agregar sanjo: jazmín Paso 2: meteoro agregar velocidad: html-reporter
En el momento en que haga esto, y si su aplicación se está ejecutando (o cada vez que vuelva a ejecutar la aplicación), en la esquina superior derecha del navegador, donde abre su aplicación, se abrirá un punto parpadeante. Eso es. Ahora tiene su marco de prueba en su lugar.
Ahora también puede producir una estructura de directorios con la ayuda de este marco. En el momento en que haga clic en ese punto parpadeante, verá una ventana emergente como la siguiente.
Esto tiene enlaces de conveniencia para generar su estructura de directorio de prueba.
Alternativamente, puede hacerlo manualmente de la siguiente manera. Lo siguiente es decidir sobre la estructura del directorio. Meteor Documentation dice suficiente sobre eso. Necesitas tener una carpeta de pruebas en tu raíz del proyecto .
Tomando el ejemplo de here , puedes ir así.
<projectRoot>
|---jasmine
|---client
|--- integration
|---- my.first.integration.spec.js
|---client
|--- unit
|---- my.first.unit.spec.js
|---jasmine
|---server
|--- integration
|---- my.first.integration.spec.js
|---server
|--- unit
|---- my.first.unit.spec.js
Y Viola, comienza a escribir tus pruebas de jazmín. Estas publicaciones pueden ayudarte aún más.
Coloque sus pruebas en la carpeta de tests/
. A diferencia de Rails, que usa una carpeta llamada test
para este propósito, Meteor usa las tests
plural para este nombre de carpeta.
Los activos almacenados en una carpeta llamada "pruebas" serán completamente ignorados por Meteor; estos activos no se cargarán en el cliente o servidor.
Irónicamente, me avisó que alguien tenía el problema opuesto y quería que el cliente Meteor les cargara las pruebas.