Tag: tdd

unit testing与Mocha,Chai和Sinon的Node.js应用程序

我是unit testingNode.js应用程序的新手。 经过一些过滤,我的应用程序将CSV文件转换为JSON。 var fs = require('fs'); var readline = require('readline'); module.exports = ((year) => { if (typeof year !== "number" || isNaN(year)){ throw new Error("Not a number"); } var rlEmitter = readline.createInterface({ input: fs.createReadStream('./datasmall.csv'), output: fs.createWriteStream('./data.json') }); rlEmitter.on('line', function(line) { /*Filter CSV line by line*/ }); rlEmitter.on('close', function() { /*Write to JSON*/ }); }); […]

如何用passport.jslogin用户testingsail.js控制器

我尝试unit testing我的sail.js控制器,要求用户login。我目前的testing是: var request = require('supertest'), // I try to use 'superagent', this changes nothing user = request.agent; describe('SomeController', function() { // login user first of all before(function(done) { user(sails.hooks.http.app) .post('/user/login') .send({username: 'hellocat', password: '123456789'}) // request works well by itself, // it does not return error and return normal response. .end(function (err, res) { […]

使用Sinon来残存mongoose模型

我想存根mongoose模型返回一个json值 我有的代码是 var valueToReturn = { name:'xxxxx' }; var stub = sinon.stub(MyModel.prototype,'findOne'); stub.returns(valueToReturn); 我得到这个错误:TypeError:试图包装未定义的属性findOne作为函数

如何使用Mocha和ChaitestingLogin API NodeJs

我是新来的testing驱动开发,我想testing我的loginAPI,但我似乎无法完全理解如何实现与数据库的testing,什么是正确的方法来做到这一点?

Node.js:遇到摩卡问题,并期望to.throwError

我正在尝试为Node创build一个简单的login模块。 我试图用TDD的方式来做,但我还是很陌生,所以任何能够帮助我更好地理解的技巧或资源都会很棒。 我的问题来了,当我查询数据库与无效的数据,我期待着一个错误。 如果我手动testing应用程序 – 这是很好的错误。 但是,当我尝试用Mocha和Expect.js来testing它时,我得到Error: expected fn to throw an exception 。 如果我将代码从to.throwError()切换到to.not.throwError()那么错误就会被正确引发。 我认为这个问题是在我尝试asynchronoustesting和error handling的地方。 第一个testing通过罚款。 谢谢参观。 基于SebastianG指令的新代码 login.js var MongoClient = require('mongodb').MongoClient; exports.login = function(callback, email, password) { MongoClient.connect("mongodb://localhost:27017/stockalertDev", function(err, db) { if (err) { return err; } var collection = db.collection('users'); if (email) { collection.findOne({email:email}, function(err, item) { try { if […]

如何为MVC控制器函数(sails.js)编写简单的茉莉花testing

我想做一个TDD。 但是,我将为我的sails.js项目编写我的控制器函数的testing /*——————— :: Gamble -> controller ———————*/ var GambleController = { index: function(req, res) { res.send('Hello World!'); } }; module.exports = GambleController; 但是,我怎样才能写一个testing来testing输出Hello世界的索引函数呢? 任何人都可以举个例子吗? 谢谢

节点快速应用程序 – 构造单元/集成testing

我试图为我的nodejs / express应用程序设置我的testing套件。 我有一个类似于这个例子的结构,我有一个应用程序文件夹,其中是模型,视图,控制器文件夹。 我有我的testing目录目前拆分为 单元 积分 在单元里面,我模仿了app的文件夹结构。 我有我的模式等unit testing…保存到一个testingMongoDB实例 我的问题是,我应该unit testing我的控制器,还是应该保存集成testing? 我的“控制器”看起来像: 控制器/ account.js exports.login = function(req, res) { res.render('account/login', { title: 'Log In' }); }; exports.login_post = function(req, res, next) { passport.authenticate('local', function(err, user, info) { if (err) { return next(err); } if (!user) { return res.redirect('/account/login'); } req.logIn(user, function(err) { if (err) […]

如何使用单个命令运行多个QUnit(node.js)testing文件?

脚本 我们正在尝试在我们的服务器端testing中使用Node.js QUnit模块 qunitjs ,以便我们可以编写一个testing并在服务器和客户端上运行它,例如: https : //github.com/nelsonic/learn-tdd/斑点/主/ test.js 当我们使用以下命令运行单个文件时: node test/my_test.js 它按预期工作。 但是,如果在/ test 目录中有多个testing,并尝试使用以下命令将所有文件作为套件运行: node test/*.js 只有第一个文件( 按字母顺序 )被执行。 请参阅: https : //github.com/nelsonic/hapi-socketio-redis-chat-example/tree/master/test 题 我们如何用一个命令 执行多个testing文件 ? 我们试图挖掘现有的StackOverflow + GitHub Q / A,但没有find任何匹配。 ( 任何build议/帮助非常感谢! )

在Node.js中进行DRYtesting

我已经写了一个Node.js CLI,并希望进一步的开发以TDD风格进行。 我有一个理想的工作stream程,想知道现有的框架是否可行。 当我编写一个新的函数时,我想在一个断言中logging它的前提条件,如果input没有被validation,将会抛出一个错误。 后置条件应在function中或附近指定 前置条件和后置条件应该生成用npm test运行的npm test 断言只能在开发模式下检查 每个函数中的文档都应该为CLI生成(html | md)文档 如果我想添加除前置条件/​​后置条件/不变testing之外的testing,应该很容易 当嘲笑testing时,应该有一种方法来指定“之前的宇宙”和“之后的宇宙”。 例如,为了testing支持新项目的命令,我应该能够将初始目录结构指定为空({}),并将最终目录结构指定为表示结果的JSON对象({name:“project “,path:”/项目“,types:”目录“,儿童:{…}})< – 或类似的东西。 这似乎需要拦截写入文件系统的能力。 我还没有自动化testing生成的候选库。 我认为Mocha , rewire和Contractual / Obligations可能适用于其他任何事情,但是我有兴趣了解其他方法。

unit testing使用Mongoose Promise的MongoDB查询

我正在做一个复杂的计算,涉及从多个集合收集数据,然后处理这些数字。 为此,我正在关注TDD,并希望先写unit testing。 我知道查询数据库违反unit testing范例,我应该使用模拟对象,但我暂时我想查询数据库testing几个数字。 我试图使用Mongoose的承诺来解决NodeJS的asynchronous方面,但我无法弄清楚。 这是我的代码: (function (argument) { 'use strict'; var should = require('should'); var assert = require('chai').assert; var mongoose = require('mongoose'); var MeasureTherm = mongoose.model('MeasureTherm'); describe('Calculations Server Test', function (){ describe('Model Tests', function () { it('should find all MeasureTherms for a Program, Year and End Use', function () { var promise = […]