Tengo experiencia con Jasmine y me gusta bastante. ¿Alguien tiene experiencia con Jasmine y Mocha, específicamente para Rails? Me pregunto si vale la pena cambiar a.Jasmine vs. Mocha Prueba de JavaScript para Rails 3.1+
Respuesta
He hecho pruebas en Jasmine y Mocha. Primero, cambiar es relativamente fácil. El patrón BDD básico describe
y it
es idéntico. Tendrá que cambiar la forma en que hace sus afirmaciones y cambiar a una interfaz diferente para las pruebas asincrónicas. En general, son comparables.
La interfaz asincrónica de Mocha es mucho más simple y consistente. Las pruebas y la configuración pueden ser síncronas o asincrónicas, lo cual es genial. Esto, más el hecho de que TJ Holowaychuck es un poeta del código épico, son buenas razones para probar Mocha.
Creo que los matchers de Jasmine son más fáciles de leer y más elegantes, especialmente cuando se combinan con el plugin jasmine-jquery. Mocha generalmente se combina con una biblioteca separada para las aserciones, a menudo chai.js si está realizando pruebas en el navegador o should.js para las pruebas de solo nodo. Estoy contento con la interfaz assert.equal()
de chai, pero el estilo Jasmine expect($("#central_errors").html()).toContain("must provide a name");
me parece más elegante. No soy partidario de la interfaz de estilo chai.js expect(42).to.be.above(41)
con oraciones delimitadas por puntos porque no funciona bien de forma auditiva.
En última instancia, esta es una pregunta de preferencia personal y le recomiendo encarecidamente que pase un día más o menos escribiendo pruebas de Mocha en lugar de Jasmine y vea cómo se siente. Totalmente una inversión que vale la pena, incluso si decides quedarte con Jasmine lo harás desde un lugar de conocimiento de primera mano y tendrás conciencia de otras formas de resolver algunos de los problemas que Jasmine resuelve. Lo intenté y me quedé con Mocha en parte porque apostar por TJ es una buena apuesta, pero Jasmine también es una biblioteca madura, sólida y ampliamente adoptada.
Consulte el proyecto Teabag en github. Específicamente, le permite utilizar la canalización de activos junto con Mocha, Jasmine o QUnit. de
https://github.com/modeset/teaspoon
Mocha una muy gran biblioteca, pero normalmente usar Jasmine - para mí es principalmente sobre el conocimiento y experiencia con Jasmine, pero Mocha tiene algunas características interesantes - como lo que le permite saber cuando está sangrando cosas en el alcance global.
Pensé que valía la pena mencionar el proyecto porque específicamente le permite jugar con ambos (en diferentes suites) para que pueda decidir por sí mismo.
- 1. Jasmine (mocha) anidado "it" prueba
- 2. Prueba de unidad de Javascript para Rails 3.1 y canalización de activos
- 3. jasmine setup error rails 3.1 ActiveSupport :: Concern (NameError)
- 4. Javascript JsTestDriver Jasmine & Jasmine-jquery
- 5. Capistrano para Rails 3.1
- 6. Prueba de vistas de JavaScript en Rails
- 7. Prueba de javascript con Mocha: ¿cómo puedo usar console.log para depurar una prueba?
- 8. Mocha Mock lleva a otra prueba
- 9. Node.JS prueba DOM con Mocha?
- 10. JavaScript: prueba vs exec
- 11. JSpec vs Jazmín vs QUnit para javascript y jQuery prueba en Rails
- 12. Jasmine: defina conjuntos de archivos de origen separados para Rails?
- 13. Rails 3.1 Pipeline - Exclude Javascript File
- 14. Requerimiento de archivo js externo para prueba de mocha
- 15. Rails 3.1 - CSRF ignorado?
- 16. Instalación de Rails 3.1
- 17. Accesorios compatibles con Mocha compatibles
- 18. ¿Alguien tiene un corredor mstest para Jasmine?
- 19. Prueba API web usando jasmine y node.js
- 20. Rails 3.1 Rutas API
- 21. Rails 3.1 Ransack HABTM
- 22. Rails 3.1 include_root_in_json
- 23. Rails 3.1 Mongoid has_secure_password
- 24. Actualización de Rails 3 a Rails 3.1
- 25. Sprites in Rails 3.1
- 26. Authlogic Rails 3.1
- 27. Controladores de plantilla Rails 3.1
- 28. Cómo renderizar imágenes en Javascript con Rails 3.1
- 29. Obtención de fuentes para trabajar en Rails 3.1?
- 30. Culerity vs Selenium para Javascript Testing in Rails
Gracias Peter! Solo el tipo de observaciones que estaba buscando :) – LupineDev
¡Hola, Peter, gran reseña! Solo para agregar, con Chai, también puedes obtener una interfaz tipo Jasmine ("bdd"): http://chaijs.com/code/expect.html De hecho, puedes mezclarla y combinarla con la afirmación (" tdd ") interfaz. De forma análoga a jasmine-jquery, también hay un plugin chai-jquery, aunque es bastante nuevo. –
Sí, tanto chai como mocha tienen múltiples interfaces. Como mencioné anteriormente, no me gusta la interfaz chai bdd/expect porque no encuentro útiles todos esos puntos. –