Jasmine and node.js
Jasmine and node.js
有一些Jasmine+Rhino
组合来测试javascript代码,并试图转移到node.js
。但是,在网上找不到任何安装说明(只有这个链接,几乎没有说明)。任何关于如何实现它的帮助(在Ubuntu上)将非常感谢。
当我第一次尝试使用jasmine-node时,我也有同样的想法(关于文档)。然而,事实证明,实际上没有什么需要设置的——它的工作方式就像RSpec或您可能习惯的其他测试工具一样。要在Node项目中使用Jasmine,请执行以下操作:
- 确保
- 写你的规格!我在这些步骤下面有一个示例规范。
- 使用命令
jasmine-node specs/
运行spec(其中specs/
指向包含spec的目录)。
jasmine-node
已经安装并且可以运行它的可执行文件。就是这样!您可能会发现使用某种构建工具是有益的,例如CoffeeScript的cake
或jake
。
下面是我最近使用jasmine-node的一个小项目的部分规范的快速示例;抱歉,它在CoffeeScript中。(顺便说一句:要根据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添加了一个新的匹配器:
jasmine = require('jasmine-node')
beforeEach ->
this.addMatchers
toInclude: (should_include) ->
for value in @actual
return true if value == should_include
false
相关文章:
- 在索引.html和应用.js [node.js] 之间共享变量
- JS(node.js)而循环不起作用
- 如何使用 JS (Node.js) 防止 HTTP 查询中允许使用 UTF8 字符串
- Angular JS & Node Webkit Routing
- 当作为脚本运行时.js Node中“this”的上下文是什么
- JS/Node:- 使用 node.io 选择标记
- JavaScript 如何让节点在返回 node.js/Node-RED 之前等待
- 处理快速连续的函数调用 - Javascript / underscore.js / node.js
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- JS node-mysql bools 表现得很奇怪
- Node.js+Node Webkit+基于Node串行端口的应用程序-这可能吗
- 如何在Express.js/Node.js中检查查询字符串是否有值
- Express.Js, Node.Js, MongoDB Questions
- 在JS/Node中,当多个人编辑相同的记录时,如何避免数据冲突?有图案吗
- 服务器端js(node.js)上的同步
- 将参数从jade发送到js/node
- angular.js+node.js/electron中的Promise;不起作用
- 是否有可能确定我的应用程序的aws实例使用js/node aws-sdk
- Image Magick模块抛出奇怪的错误(Express js Node js)
- 用JS (Node.js)读取文本文件'