茉莉花和node.js

有一些Jasmine+Rhino组合来testingJavaScript代码,并试图转移到node.js 但是,在网上找不到任何设置说明(但只有这个链接,几乎为零指令)。 任何帮助如何使其成为真正的(在Ubuntu上)将不胜感激。

当我第一次尝试使用茉莉节点时,我想到了同样的事情(关于文档)。 事实certificate,几乎没有什么东西可以设置,就像RSpec或其他testing工具一样。 要将Jasmine与Node项目一起使用,请执行以下操作:

  1. 确保jasmine-node已安装,并且您可以运行其可执行文件。
  2. 写你的规格! 我在这些步骤下面有一个示例规范。
  3. 使用命令jasmine-node specs/ (其中specs/指向您的规格目录)运行您的规格。

而已! 您可能会发现使用某种构build工具是有好处的,比如用于CoffeeScript或jake cake

下面是我最近使用jasmine-node的一个小项目的一部分规范的一个简单例子。 道歉,它在CoffeeScript中。 ( --coffee :要对CoffeeScript规范运行jasmine-node,请传递--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) 

[编辑]

您还可以在specs/目录的根目录下添加一个spec_helper文件(对于您的项目使用适当的扩展名)。 这里是我的内容,它增加了一个新的匹配器茉莉花:

 jasmine = require('jasmine-node') beforeEach -> this.addMatchers toInclude: (should_include) -> for value in @actual return true if value == should_include false