Имейте несколько компиляторов Jasmine+Rhino
, чтобы проверить код javascript и попытаться перейти на node.js
. Однако не удалось найти инструкции по установке в сети (но только эта ссылка с почти нулевыми инструкциями). Любая помощь в том, как сделать это верно (на Ubuntu), будет высоко оценена.
Жасмин и node.js
Ответ 1
Я думал то же самое (относительно документации), когда я впервые попытался использовать jasmine- node. Однако, как оказалось, практически ничего не нужно настраивать - он работает так же, как RSpec или другие инструменты тестирования, к которым вы могли бы привыкнуть. Чтобы использовать Jasmine с вашим проектом Node, выполните следующие действия:
- Убедитесь, что установлен
jasmine-node
и вы можете запустить его исполняемый файл. - Напишите свои спецификации! У меня есть образец образца ниже этих шагов.
- Запустите свои спецификации с помощью команды
jasmine-node specs/
(гдеspecs/
указывает на каталог с вашими спецификациями).
Что это! Вам может быть полезно использовать какой-то инструмент построения, например cake
для CoffeeScript или jake
.
Вот краткий пример части спецификации из небольшого проекта, который я использовал в последнее время жасмин - node; извинился, что это в CoffeeScript. (В стороне: для запуска jasmine- node против спецификаций CoffeeScript передайте ему параметр --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 location to the given square index", ->
piece = jasmine.createSpyObj(Piece, ["position"])
@board.place_piece "b5", piece
expect(piece.position).toEqual(65)
[изменить]
Вы также можете добавить файл spec_helper
(с соответствующим расширением для вашего проекта) в корневой каталог вашего specs/
. Здесь мое содержимое, которое добавляет новый спаситель Жасмину:
jasmine = require('jasmine-node')
beforeEach ->
this.addMatchers
toInclude: (should_include) ->
for value in @actual
return true if value == should_include
false