Tag: tdd

我能做些什么来改善我的testing?

最近我试图让我的头在与Mongoose作为MongoDB包装的节点JS的testing驱动开发。 我的问题是我做对了。 我在testing正确的东西,我应该做更多的testing,涵盖空值等。你认为我可以改进的东西是什么? 随意批评尽可能多的,如你所愿。 testing: var assert = require("assert"), mongoose = require("mongoose"), sugar = require("sugar"), Factory = require("factory-lady"), Timekeeper = require("timekeeper"), Link = require("./../app/models/link"); mongoose.connect("mongodb://localhost/link_test"); Factory.define("link", Link, { createdAt: new Date("2012-04-04"), title: "Example", updatedAt: new Date("2012-04-05"), url: "http://www.example.com" }); describe("Link", function() { describe("validation for", function() { ["url", "title"].forEach(function(property) { it("must have a " + property, […]

Jasmine Nodetestingsubprocess

刚刚写了一个模块,抓住生产箱的当前IOStat,以确定是否过度工作。 有趣的问题 – 没有真正的方法来testing与Jasmine的callback函数; 至less,我发现了一个。 间谍是我想到的第一件事,但由于它实际上是直接调用函数,所以这是不可能的。 当然,我总是可以把这个函数定义为一个var并且做一个间谍。 proc.exec('iostat -c | tail -n2', function(err, out, s){ if(err) throw err; misc(); } 我想testing这个的唯一原因 – 是因为我正在开发一个没有所有这些命令的Windows机器,所以我想拦截它并抛出预期的结果。

未能在茉莉花节点中显示的testing

我有一个Web服务的基本testing: var request = require('http'), url = 'http://localhost:1337/'; describe('webservice', function() { it('should respond to /ping', function(done) { request.get(url + 'ping', function(res) { expect(res.statusCode).toBe(200); res.on('data', function(body) { var json = JSON.parse(body); expect(json.message).toBe("Hi, I'm alive"); expect(json.date).toBeDefined(); done(); }); }); }); }); 这似乎工作正常: $ jasmine-node –verbose tests/ping/ webservice should respond to /ping Finished in 0.032 seconds 1 test, […]

不寻常的行为在testing:node.js / Mocha

我最近跳入nodeJS,并开始使用Express&Wagnor构build中间件应用程序 下面是我的package.JSON { "devDependencies": { "gulp": "3.8.11", "gulp-mocha": "2.0.1", "mocha": "2.2.4", "superagent": "1.2.0", "wagner-core": "0.1.0" }, "dependencies": { "underscore": "1.5.2", "mongodb": "2.2.10", "express": "", "http-status": "0.1.8", "mongoose":"" }, "scripts": { "test": "mocha test.js" } } 我被困在一个非常特殊的情况下,search类似的事件报告,但没有得到任何相关的。 我确信我犯了一个愚蠢的错误,需要帮助来识别它。 这里是情况,我有一个基本的中间件设置6个端点,我正在testing使用摩卡。 我有一个test.js文件与6testing和问题是,当我运行它通过一次失败的另一次,然后再次通过没有任何干预env或代码或testing。 这让我非常担心,天气我的应用程序将在生产中performance类似,或者是一个testing相关的问题或已知的摩卡问题(找不到任何)。 以下是我的testing文件 var URL_ROOT = 'http://localhost:3131'; var express = require('express'); var wagner = require('wagner-core'); var assert […]

如何使用构造函数和依赖关系来testing无服务器的lambda函数?

如何在构造函数中存储构造函数以传递对构造对象的期望? 我正在使用无服务器,我有一个lambda函数具有依赖关系,并通过计划的事件每分钟运行。 我想专注于lambda函数的行为,所以我想我的一个testing如下 – >它从消息队列中取消消息。 testing将validation我的队列已经收到一个函数dequeueMessages – 就是这样。 这里是我的示例lambda: module.exports = function(event, context, callback) { var queue = new Queue(); queue.dequeueMessages(params).then(messages => { var client = new DataFetcher(); return client.fetchData(messages).then(data => { var database = new Database(); return database.persist(data); }) } } 我知道那里还有其他的依赖关系,但是我只想把重点放在获得第一个testing通过上,而我正在努力用new Queue来断言构造的对象队列调用了#dequeueMessages。 我已经探索过了 ,现在有了摩卡和柴的testing,但我不知道如何把所有的工具放在一起做这个非常简单的testing。

在模块之外的Node.js模块中构造函数(或其他函数)

我正在使用Jasmine写我的testing,但我想我会有任何其他testing框架的这个问题。 假设我们有一个带有两个函数Bar和Baz的模块foo ,它们是构造函数(但可能只是普通的函数): var Bar = exports.Bar = function Bar() { this.baz = new Baz(); }; var Baz = exports.Baz = function Baz() { }; 现在我想testingBar ,但是用一个假的Baz实现: var foo = require('foo'); describe("foo.Bar", function() { it("initializes its own Baz", function() { spyOn(foo, 'Baz'); // this replaces foo.Baz with a fake implementation var bar = new foo.Bar(); […]

茉莉花节点testing执行两次

我的茉莉花节点testing执行两次。 我从Grunt任务和Jasmine命令运行这些testing。 结果是一样的我的testing运行两次。 我的package.json: { "name": "test", "version": "0.0.0", "dependencies": { "express": "4.x", "mongodb": "~2.0" }, "devDependencies": { "grunt": "~0.4.5", "grunt-jasmine-node":"~0.3.1 " } } 这是我的Gruntfile.js摘录: grunt.initConfig({ jasmine_node: { options: { forceExit: true, match: '.', matchall: true, extensions: 'js', specNameMatcher: 'spec' }, all: ['test/'] } }); grunt.loadNpmTasks('grunt-jasmine-node'); grunt.registerTask('jasmine', 'jasmine_node'); 我的一个testing文件: describe("Configuration setup", function() { it("should load […]

用CoffeescripttestingNodejs

我涉及到node.js和coffeescript,我想知道什么是一个好的unit testing和验收testing设置的技术。 项目(后端/networking服务器/数据库)的数据组件是使用coffeescript和node.js和视图和组件将在coffeescript / JavaScript(使用titanium加速器),他们是非常分离的,但如果他们可以使用相同的这两个testing框架将是很酷的。 经过一番search,我听到的名字是茉莉,僵尸和摩卡。 任何帮助,将不胜感激。 更新: 我忘了添加我习惯于使用rails开发,使用rspec进行unit testing,并使用Cucumber进行验收testing。

eslint应该列在项目的依赖关系中,而不是devDependencies

要么我不明白dependencies与devDependencies在节点100%还是eslint在这里只是错(不能正确分析这个): 3:1 error 'chai' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies 4:1 error 'chai-enzyme' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies 5:1 error 'enzyme' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies 7:1 error 'sinon' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies 9:1 error […]

在node.js中编写同步函数的简单方法

出于testing的目的,如果我能够执行一些等待同步的testing函数来获得结果,我的代码将会看起来更好。 我知道关于node.js中事件编程的主要思想,但是在同步运行的testing中,处理器对我来说不是问题。 是否有任何简单的(单线程将是最好的)解决scheme来执行函数,通过callback(err,ret)返回一些值,通过“return”返回该ret,并假装执行是同步的。