Articles of jasmine node

茉莉花节点完成没有定义

一直在尝试一个简单的asynchronoustesting。 安装jasmine-node npm install -g jasmine-node然后写了一个简单的模块并testing。 简单的模块。 // weather.js exports.get = function(city, callback) { callback(city); }; 和一个testing套件。 // weather-spec.js var list = require("../modules/weather"); describe("Weather Forecast", function(data) { it('should get weather for London,UK', function() { list.get('London,UK', function(data) { expect(data).toEqual('London,UK'); done(); }); }); }); 我得到的错误: Stacktrace: ReferenceError: done is not defined 鉴于这个简单的例子,我不明白我要去哪里错了。 谁能帮忙?

在不改变数据库的情况下testingPOST到API的策略

我正在使用jasmine-node来testing我的API,并且它对我的GET路由非常有用。 现在,但是,我需要testing一些职位,我不知道如何去改变我的数据库。 我以为有一个想法就是在每个规范的最后重置我改变的任何价值。 这是合理的还是有更好的方法去testingPOST请求到我的API?

节点jsunit testing:嘲笑需要依赖

我正在为以下设置编写unit testing的问题作为jira.js文件(在node.js模块中): var rest = require('restler'); // https://www.npmjs.com/package/restler module.exports = function (conf) { var exported = {}; exported.getIssue = function (issueId, done) { … rest.get(uri).on('complete', function(data, response) { … }; return exported; }; 现在,我想为我的getIssue函数编写unit testing。 'restler'是一个REST客户端,我通过REST客户端调用JIRA API来获取JIRA问题。 所以为了能够testingcreateIssue(..),我希望能够在我的Jasmineunit testing中嘲笑'rest'var。 我怎样才能嘲笑这种方法? 请给我一些指示,以便我可以继续。 我曾尝试使用rewire,但我失败了。 这是我迄今为止不起作用(即getIssue方法原来是未定义的): var rewire = require("rewire"); var EventEmitter = require('events').EventEmitter; var emitter = new […]

茉莉花节点testing孩子process.send

我有一个node.js应用程序,它有一个主进程main-process.js和一个subprocesschild-process.js 。 main-process.js看起来像这样, var childProcess = require('child_process'); var job = childProcess.spawn('node', ["child-process.js"], { detached = true, stdio: ['ipc'] }); 我的child-process.js执行一些任务,并通知父进程有关它的状态,它使用 exports.init = function() { //some processing here process.send({status: 'success or pending'}); } 现在我想用jasmine-node对unit testingchild-process.js。 但是当我从spec中调用init()方法时,jasmine-node会抛出一个错误 TypeError: Object #<process> has no method 'send' 有什么办法模拟processvariables? 换句话说,我该如何testing这种情况?

咕噜茉莉节点testing运行两次

我设置了grunt来运行node.js茉莉花testing。 出于某种原因,使用此configuration,结果总是显示双倍的testing。 这是我的configuration: 我正在使用插入grunt的茉莉花节点 。 /spec/some-spec.js : var myModule = require('../src/myModule.js'); describe('test', function(){ it('works', function(done){ setTimeout(function(){ expect(1).toBe(1); done(); }, 100); }); }); Gruntfile.js : module.exports = function(grunt) { grunt.initConfig({ jasmine_node: { options: { forceExit: true }, all: ['spec/'] } }); grunt.loadNpmTasks('grunt-jasmine-node'); grunt.registerTask('default', ['jasmine_node']); }; 这导致两个testing运行,而不是一个。 > grunt Running "jasmine_node:all" (jasmine_node) task .. Finished in 0.216 […]

用jasmine-node在nodejs中testingasynchronousmongodb调用

我使用jasmine-node对我的nodejs函数运行testing。 作为nodejs和mongodb的新手,我遇到的第一件事是testing一些数据库调用,由于nodejs的asynchronous特性,我立即被卡住了。 我想要做的是: 1)添加一个add函数来添加新的条目到一个mongodb表 2)从该函数接收一个状态string来validation动作的状态 以下是我的规范的代码。 在beforeEach调用我初始化数据库。 正如你在实现中看到的那样,它只是被实例化了一次,因为有一个条件询问它是否已经存在。 var mongo = require('../mongo.js'); describe('mongo', function() { // generate a random number in order to test if the written item and the retrieved result match var randomNumber = Math.random(); var item = { 'cities': { 'london': randomNumber } }; beforeEach(function() { mongo.init(); waitsFor(function() { return mongo.getCollection(); }, […]