la unidad de pruebas CoffeeScript?
-
01-10-2019 - |
Pregunta
Estoy usando CoffeeScript en una aplicación Rails, y me gustaría que la unidad de prueba. Google no se presentó nada, ¿hay alguna manera de hacerlo corto de escribir mi propio marco o para el ensayo de JavaScript que las salidas CoffeeScript?
Solución
Se puede usar cualquier framework de pruebas con Javascript CoffeeScript. Esto pondrá a prueba las salidas de JavaScript que CoffeeScript que es necesario ya que CoffeeScript en sí no puede ser ejecutada.
Escribir su propio marco de pruebas para CoffeeScript es divertido ( hice ), pero enteramente uneccessary.
UPDATE: Jasmine pruebas puede ser ejecutar en node.js en cuyo caso tanto de los ensayos y el código bajo prueba pueden ser CoffeeScript, sin la necesidad de ningún paso de compilación.
Otros consejos
Puede utilizar QUnit "tal cual", pero todavía sólo escritura coffeescript -. Y sin cola de código
Tengo un proyecto coffeescript muy pequeño, puro en github como un ejemplo -. rubyann
La página de prueba HTML rubyann_tests.html , hace referencia al archivo rubyann_tests.coffee qué pruebas < a href = "https://github.com/PandaWood/jquery.rubyann/blob/master/src/jquery.rubyann.coffee" rel = "nofollow noreferrer"> jquery.rubyann.coffee . No escribí ninguna JavaScript o cualquier otro código para hacer este trabajo.
Las pruebas sólo se ejecutan en Chrome en el equipo local si se utiliza el argumento de línea de comandos - permitir-file-access-from-archivos . Pero funciona en Firefox e incluso IE sin problemas.
adenda - las pruebas son también configurar para ejecutarse en la línea de comandos a través del nodo / trago / qunitjs - descarga el repositorio y escriba npm run test
Estoy probando CoffeeScript en mi aplicación Rails con QUnit, y he escrito hasta la forma en que lo estoy haciendo aquí: http://effectif.com/coffeescript/qunit-boilerplate
Lo más interesante en mi artículo es el uso de la devolución de llamada a Coffee.load para garantizar que los archivos que contienen las pruebas se cargan después de los archivos que contienen el código bajo prueba:
<script type="text/coffeescript">
for file in ['models', 'controllers']
lib = "../../app/assets/javascripts/#{file}.js.coffee"
load_test = ->
test = "#{file}_test.coffee"
-> CoffeeScript.load(test)
CoffeeScript.load lib, load_test()
</script>
La necesidad de ganarse la variable test
se explica en el artículo ...
Para coffeescript unidad de prueba puede probar bestia-Test que fue escrito desde cero para café- guión. FYI soy la propia, pero creo que le va a gustar, no obstante. Es similar a JUnit