Articles of tdd

Chai / Moka – > TypeError:request.get(…).expect不是一个函数

第一次与TDD。 在阅读了一些关于我的NodeJS API的文章之后,我使用了Chai / Moka二人组合。 我已经做了一些愚蠢的testing,学习如何使用这些。 现在我想testing我的API,所以我创build了一个路线: app.get('/hello', function(req, res) { res.status(200).send('Hello World!') }) 我尝试这样的testing: var request = require('superagent') var expect = require('Chai').expect […] describe('When request baseURL/hello', function(){ it('should salute you !', function (done) { request .get(baseURL + '/hello') .expect(200) .end(function(err, res){ if(err) return done(err) done() }) }) }) 我有失败输出: TypeError: request.get(…).expect is not a […]

Hapi js导出服务器variables

我想添加testing到我的项目。 服务器是写在Hapi,我想知道在哪里把我的testing文件夹以及如何将服务器variables导出到testing文件。 我知道我可以导出它与module.exports = server但我认为这不是一个好主意导出它。 有什么build议么?

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议/帮助非常感谢! )