Articles of 摩卡

如何在一个命令/进程中执行服务器和客户端testing?

因为我正在使用前端的AngularJS和服务器的Node.js开发Web应用程序。 现在我正在使用Mocha(+ Chai + Supertest)编写节点服务器(基于Express)的testing,以及使用Mocha和Testacular作为testing运行器的客户端testing,因为Testacular是Angular的首选工具。 请注意,Angular应用程序是“embedded”在节点的应用程序,因为它位于模板文件。 我的testing过程:对于服务器testing,我只是npm test ,即mocha <my-test-folder> <my-test-options> ; 对于客户端testing,我启动了一个观察所需文件中的变化的Testacular服务器。 但是我不喜欢这个并行和不连贯的过程,我相信有一个更好,统一的自动化方式。 可以帮助我完善这个过程吗?

为什么beforeEach不能在mocha的第二个describe()语句中运行?

第一个beforeEach清除了用户集合…这对于第一组testing(#save()描述)工作得很好……但是对于第二个描述(“ beforeEach ()”)不适用。 describe('User', function(){ beforeEach(function(done){ //clear out db User.remove(done); }); describe('#save()', function(){ beforeEach(function(done){ user = new User(fakeUser); done(); }); it('should have username property', function(done){ }); it('should not save if username is not present', function(done){ }); }); describe('#find()', function(){ beforeEach(function(done){ user = new User(fakeUser); user.save(function(err, user){ done(); }); }); it('should find user by email', function(done){ […]

如何使用createReadStream函数链接testing与摩卡?

我有这个function,我想用摩卡testing: exports.readFile = readFile; function readFile(filepath, startOffset, outputStream){ var fileSize = fs.statSync(filepath).size; var length = fileSize – startOffset; console.log(startOffset); fs.createReadStream(filepath, {start: startOffset, end: fileSize} ).pipe(outputStream); } 我使用下面的代码来testing我的function: var edp = require("edp.js"); var Buffered = require("buffered-stream"); var sampleData = 'A small test.'; fs.writeFileSync('./test.txt', sampleData); var filedata = ''; var smallBufferedStream = new Buffered(20); smallBufferedStream.on("data", function(data){ filedata […]

用摩卡testingFacebook应用程序

我正在开发一个使用Facebooklogin的node.js应用程序,我正在尝试使用mocha进行单元和集成testing。 所以在一个函数,我有这个代码为了login: exports.loginFacebook = function (done){ request({uri:"https://graph.facebook.com//oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials", method: "GET", timeout: reqOpts.timeout}, function(err, res, body) { if(err){ throw err; } else{ uri2 = "https://graph.facebook.com/APP_ID/accounts/test-users?"+String(body); request({uri:uri2, method: "GET", timeout: reqOpts.timeout}, function(err, res, body) { if(err){ throw err; } else{ login_url = JSON.parse(body).data[0].login_url console.log(login_url); request({uri:login_url, method: "GET", timeout: reqOpts.timeout}, function(err, res, body) { if(err){ throw err; } else{ […]

testing摩卡预期的超时时间

我有一个Faye发布/订阅服务器,只有当消息已经发送给其他订阅者时,才向新订阅者发送消息。 我正在使用摩卡进行unit testing。 这个testing的目的是确认基本function: it('should send a special message to new subscribers', function(done){ testerPubSub.setLastJsonContent('some arbitrary content'); var subscription = client.subscribe("/info", function(message) { assert.equal(true, message.text.indexOf('some arbitrary content') !== -1, 'new subscriber message not sent'); done(); }); subscription.cancel(); }); 但是现在我想testing一下没有消息发送给以前的用户的情况。 这个testing会是这样的: it('should not send a special message to new subscribers if no data has been retrieved', function(done){ […]

摩卡testingi18n TypeError:无法读取未定义的属性'text50'

我正在使用摩卡testing框架来testing我的应用程序和翻译我使用从mashpie i18n。 在我的validation.js文件中,我需要i18​​n模块并使用i18n .__函数 console.log(i18n.__('text50')); 在我的testing文件validation.test.js我需要validation.js进行testing。 然后我用摩卡运行testing,因为我得到的结果。 Running "mochaTest:test" (mochaTest) task >> Mocha exploded! >> TypeError: Cannot read property 'text50' of undefined >> at translate (/Volumes/Develop/townspeech/node_modules/i18n/i18n.js:355:23) >> at Object.i18nTranslate [as __] (/Volumes/Develop/townspeech/node_modules/i18n/i18n.js:96:11) >> at Object.<anonymous> (/Volumes/Develop/townspeech/server/libs/validation.js:24:18) >> at Module._compile (module.js:456:26) >> at Object.Module._extensions..js (module.js:474:10) >> at Module.load (module.js:356:32) >> at Function.Module._load (module.js:312:12) >> at Module.require […]

摩卡unit testing节点模块,模块variables奇怪

生病了一些代码的业务: hangman.io.js: var from = require('fromjs'), fs = require('fs'); var defaultBasePath = 'lib/hangman/wordlists'; var filePaths = []; function init(basePath) { basePath = basePath || defaultBasePath; filePaths = loadPaths(basePath); } function loadPaths(basePath) { var wordLists = fs.readdirSync(basePath); return from(wordLists).select(function (x) { return basePath + '/' + x; }).toArray(); } function getFilePath(type) { if (!filePaths || !(filePaths […]

节点快速应用程序 – 构造单元/集成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) […]

从testing中解耦查询的最佳实践

我正在寻找使用mocha或sinontestingmysql查询的最佳实践。 我试图testing非常基本的数据库查询,如保存: User.prototype.save = function(cb) { var query = 'INSERT INTO user (name, email, password, img, description)' + 'values (?, ?, ?, ?, ?)'; var params = [this.name, this.email, this.pass, this.img, this.description]; db.query(query, params, function(err, rows) { if (err) return cb(err); cb(rows.insertId); } ); }; 我相信我想做一个模拟数据库,并使用该对象,而不是我的数据库对象,但我也想分开testing逻辑从应用程序逻辑。 我尝试了一些变化 describe('User', function() { before(function() { mock = sinon.mock(require('../middleware/db')); […]

如何在NodeJs中loggingwebdrivertesting的video

我打算使用node.JS webdriver / Mocha /量angular器中的任一个。 有没有一种简单的方法来录制video中的任何一个? 我已经看过在运行testing时使用ffmpeglogging整个屏幕的选项,但是如果有任何nodejs库可以帮助我直接logging任何这些video。 我会用这个。