Las partes separadas de mi sitio tienen conjuntos separados de archivos Javascript, que -todos juntos- se interfieren entre sí. Para probar todo con Jasmine, parece que necesito alguna forma de definir conjuntos separados de "activos" para diferentes suites. ¿Es esto posible actualmente y, de ser así, cómo?Jasmine: defina conjuntos de archivos de origen separados para Rails?
Respuesta
Es posible que desee considerar, como se sugiere, dividir su javascript en diferentes espacios de nombres. Una excelente forma de facilitar la separación de javascript en varios archivos es mediante el uso del module pattern que utiliza cierres y algunas otras buenas propiedades de javascript para ejecutar el código necesario de inmediato y contenerlo.
¿Qué pasa si dos archivos js definen funciones con el mismo nombre? En la aplicación web, ambos no se cargarán, pero con jazmín, colisionan. – apneadiving
Disculpas; No he usado Jasmine antes, pero en general el procedimiento anterior es bueno para dividir archivos javascript. Si hay dos funciones con el mismo nombre, probablemente deberían pertenecer a su propio espacio de nombre/clase. – NT3RP
- 1. Vistas en conjuntos separados en ASP.NET MVC
- 2. Jasmine vs. Mocha Prueba de JavaScript para Rails 3.1+
- 3. xsd.exe para generar clases como archivos separados?
- 4. Organización de archivos de origen
- 5. Javascript JsTestDriver Jasmine & Jasmine-jquery
- 6. Log4net: archivos de registro separados para cada clase
- 7. Ejecutando JSCoverage con Jasmine
- 8. Nuget y archivos de control de origen para excluir?
- 9. Conversión de archivos ASCII de origen a archivos JPEG
- 10. Anotar conjuntos de cambios desde el control de origen en Visual Studio 2010
- 11. Combinar conjuntos de archivos utilizando Ant
- 12. jasmine setup error rails 3.1 ActiveSupport :: Concern (NameError)
- 13. Incluyendo archivos de origen en C
- 14. depurador gdb múltiples archivos de origen
- 15. C++ usando Namespace en archivos de origen
- 16. Poner clases anidadas en archivos separados
- 17. javac no hay archivos de origen encontrado
- 18. ¿Funtores en archivos separados en OCaml?
- 19. expectativas de error en Jasmine
- 20. Forma automática de poner todas las clases en archivos separados
- 21. ¿Alguien tiene un corredor mstest para Jasmine?
- 22. volcar todas las tablas de mysql en archivos separados automágicamente?
- 23. Exportar todas las tablas de SQL Server a archivos separados
- 24. Scala Cake Pattern: división de componentes grandes en archivos separados
- 25. Cómo dividir el código de un módulo en archivos separados
- 26. Objective-C aplicación parcial de las clases en archivos separados
- 27. Jasmine y node.js
- 28. Backbone jasmine sinon.stub typeError
- 29. Pruebas unitarias AngularJS + Testacular/Jasmine: Ejecutado 0 de 0 SUCCESS
- 30. sbt para excluir el directorio de origen
¿Puede explicar cómo interfieren entre sí? Si coloca cuidadosamente su Javascript en espacios de nombres y comprueba si cada módulo en un espacio de nombres ya está definido antes de definirlo, debería poder evitar conflictos. Quizás si das un ejemplo de un conflicto, se puede mostrar cómo volver a empaquetar las cosas para evitar conflictos. La canalización de recursos de Rails 3.1 esperará (de forma predeterminada, de todos modos) que pueda tener todo su javascript definido en una aplicación.js (es decir, todos sus módulos se transfieren a un solo archivo). – mwolfetech
Tenía un archivo JS configurado para la parte pública de mi sitio y otro para la parte administrativa. Ambos tenían algunas funciones y variables globales con el mismo nombre, porque expusieron un comportamiento similar, pero ligeramente diferente en ambas partes. Lo que terminé haciendo es: (1) factorizar el comportamiento común en archivos JS compartidos y (2) implementar [clases y herencia] (http://ejohn.org/blog/simple-javascript-inheritance/) para encargarme de las variantes en el comportamiento. Así que esencialmente limpié todo el conjunto de archivos JS para que todos puedan coexistir al mismo tiempo. Pero todavía veo valor en probar solo subconjuntos de archivos. –