茉莉花和node.js
有一些Jasmine+Rhino
组合来testingJavaScript代码,并试图转移到node.js
但是,在网上找不到任何设置说明(但只有这个链接,几乎为零指令)。 任何帮助如何使其成为真正的(在Ubuntu上)将不胜感激。
当我第一次尝试使用茉莉节点时,我想到了同样的事情(关于文档)。 事实certificate,几乎没有什么东西可以设置,就像RSpec或其他testing工具一样。 要将Jasmine与Node项目一起使用,请执行以下操作:
- 确保
jasmine-node
已安装,并且您可以运行其可执行文件。 - 写你的规格! 我在这些步骤下面有一个示例规范。
- 使用命令
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
- 用MochatestingExpress和Mongoose
- 如何在NodeJS中设置MongoDB进行集成testing?
- node.js / karma /端到端testing:无法代理/app/index.html(错误:连接ECONNREFUSED)
- node.js mongoose chai-http RESTful APItesting(唯一字段)的行为与手动ARC APItesting不同
- Benchmarkt socket.io
- 使用AVA进行dynamictesting
- 在unit testing中嘲笑Passport.js(本地策略)
- 重置nock范围的pendingMocks
- 摩卡bdd风格testing命名