Подтвердить что ты не робот

Жасмин и node.js

Имейте несколько компиляторов Jasmine+Rhino, чтобы проверить код javascript и попытаться перейти на node.js. Однако не удалось найти инструкции по установке в сети (но только эта ссылка с почти нулевыми инструкциями). Любая помощь в том, как сделать это верно (на Ubuntu), будет высоко оценена.

4b9b3361

Ответ 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