javascript - run - karma node
Jazmín y node.js (1)
Pensé lo mismo (con respecto a la documentación) cuando intenté usar jasmine-node por primera vez. Sin embargo, resulta que prácticamente no hay nada que configurar, funciona igual que RSpec u otras herramientas de prueba a las que podría estar acostumbrado. Para usar Jasmine con su proyecto Node, haga lo siguiente:
- Asegúrate de que
jasmine-node
esté instalado y que puedas ejecutar su ejecutable. - Escribe tus especificaciones! Tengo una especificación de muestra debajo de estos pasos.
- Ejecute sus especificaciones con el comando
jasmine-node specs/
(dondespecs/
points al directorio con sus especificaciones).
¡Eso es! Puede que le resulte beneficioso utilizar algún tipo de herramienta de compilación, como cake
para CoffeeScript o jake
.
Aquí hay un ejemplo rápido de parte de una especificación de un pequeño proyecto en el que usé jasmine-node recientemente; disculpas que está en CoffeeScript. (Como aparte: para ejecutar jasmine-node contra las especificaciones de CoffeeScript, --coffee
opción --coffee
).
Chess = require(''../lib/chess'')
Board = Chess.Board
jasmine = require(''jasmine-node'')
describe "A chess board", ->
beforeEach ->
@board = new Board
it "should convert a letter/number position into an array index", ->
expect(Board.squares["a1"]).toEqual(0)
expect(Board.squares["b1"]).toEqual(1)
expect(Board.squares["a2"]).toEqual(16)
expect(Board.squares["h8"]).toEqual(119)
it "should know if an array index represents a valid square", ->
expect(Board.is_valid_square 0).toBeTruthy()
expect(Board.is_valid_square 7).toBeTruthy()
expect(Board.is_valid_square 8).toBeFalsy()
expect(Board.is_valid_square 15).toBeFalsy()
expect(Board.is_valid_square 119).toBeTruthy()
expect(Board.is_valid_square 120).toBeFalsy()
expect(Board.is_valid_square 129).toBeFalsy()
expect(Board.is_valid_square -1).toBeFalsy()
it "should start off clear", ->
for i in [0..127]
if Board.is_valid_square(i)
expect(@board.piece_on(i)).toBeNull()
describe "#place_piece", ->
it "should place a piece on the board", ->
piece = jasmine.createSpy("piece")
@board.place_piece "a1", piece
expect(@board.piece_on "a1").toEqual(piece)
it "should set the piece''s location to the given square''s index", ->
piece = jasmine.createSpyObj(Piece, ["position"])
@board.place_piece "b5", piece
expect(piece.position).toEqual(65)
[Editar]
También puede agregar un archivo spec_helper
(con la extensión adecuada para su proyecto) en la raíz de su directorio de specs/
. Aquí está el contenido de la mía, que agrega un nuevo emparejador a Jasmine:
jasmine = require(''jasmine-node'')
beforeEach ->
this.addMatchers
toInclude: (should_include) ->
for value in @actual
return true if value == should_include
false
Ten un poco de combo Jasmine+Rhino
para probar el código javascript y tratar de cambiar a node.js
Sin embargo, no se pudieron encontrar instrucciones de configuración en la red (solo this enlace, con casi cero instrucciones). Cualquier ayuda sobre cómo hacerlo realidad (en Ubuntu) será muy apreciada.