test run nodejs node karma javascript testing node.js jasmine

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:

  1. Asegúrate de que jasmine-node esté instalado y que puedas ejecutar su ejecutable.
  2. Escribe tus especificaciones! Tengo una especificación de muestra debajo de estos pasos.
  3. Ejecute sus especificaciones con el comando jasmine-node specs/ (donde specs/ 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.