Tag: 摩卡

在超级请求中设置ip

超supertest,我可以做一个resquest来testing我的node.js应用程序 var request = require('supertest'); var api = require('../server').app; … it('json response', function(done){ request(api) .get('/api') .set('Accept', 'application/json') .expect('Content-Type', /json/) .end(function(err, res){ done(); }); }); 我如何设置特定的IP来做testing请求? it('ip access denied', function(done){ request(api) .get('/api') .set('Accept', 'application/json') .expect('Content-Type', /json/) // set specific ip .end(function(err, res){ res.body.message.should.eql('Access denied'); done(); }); });

在Mocha中使用请求调用来testing一个函数

我对node.js和Mocha很新。 我想testing以下function: querybackend = function(url,queryParams) { var backendData ={}; request({url:url, qs:queryParams}, function(err, response, body) { if(err) { console.log(err); return; } var data = JSON.parse(body); var length = data.length; var tmp = data[0].DataPoints[0].length; var in_sum =Array.apply(null, new Array(tmp)).map(Number.prototype.valueOf,0); var timestamp = []; var index1; var index2; for(index1=0;index1 < length;index1++) { var length2=data[index1].DataPoints.length; for(index2=0;index2<length2;index2++) { in_sum[index2]= in_sum[index2] […]

如何嘲笑后端的第三方API调用

我正在用摩卡和超级testing我的应用程序,所以我的testing总是像 var request = require('supertest'), app = require('./bootstrap.js'); describe('…', function() { it('…', function() { request(app) .get('/some/url') // … }); }); 在监听端口之前,bootstrap.js是我真正的应用程序 所有的作品都很完美,但是最近我不得不添加对第三方API的调用,而且testing速度很慢 所以当我这样做,例如testing需要5秒钟 request(app) .get('/my/endpoint/that/makes/call/others') // … 如何在testing过程中做出虚假的电话,但在运行我的应用程序时是否真实?

使用Mocha在NodeJS中进行OAuthstreamtesting

我正在尝试创build和使用reddit的OAuthstream来validation用户的应用程序,并检索将被我的应用程序用于进一步的reddit api调用的访问令牌。 当他们使用API​​调用“/login”,客户端被redirect到reddit的OAuth页面,他们将login和接受或拒绝。 然后,他们将被redirect到OAuthcallbackURL,NodeJS将获取令牌(或错误)并继续。 我可以testing这个stream程并在testing中获得访问令牌的最佳方式是什么,以便我可以使用它来进一步testing调用?

Node.js / Mocha / Supertest REST api – 一个del()停止工作后,我添加了第二套房

所以我有一个模型,我试图testing。 它具有自定义终结点以及标准REST终结点。 我build立了一个套件来testing标准操作。 首先,我张贴了,然后我插入(一个没有身份证…基本上是一个职位),然后我得到了。 最后,我删除了我发布时创build的条目,并且在我自己之后进行清理,以便删除我已插入的点。 这工作,这是很好的。 然后,在同一个文件中,我添加了另一个套件,这个套件testing我的自定义端点。 现在我的钩子应该删除插入点失败。 这不好。 我尝试在新的描述语句中包装我的testing删除,但它再次没有工作。 最后,我完全抛弃了这个钩子,只是发了两个.del的电话,但它仍然不起作用。 我在我的智慧结束。 请让我知道,如果你能弄清楚为什么这不起作用,以及如何使其工作。 先谢谢你! 这是我的代码: var request = require('supertest'); var app = require('../server'); var chai = require('chai'); var chance = require('chance').Chance(); var assert= require('assert'); function json(verb, url) { return request(app)[verb](url) .set('Content-Type', 'application/json') .set('Accept', 'application/json') .expect('Content-Type', /json/); } describe('Testing standard REST endpoints-(CREATE, GET,PUT, DELETE)', function() { […]

如何确保在节点上使用mocha和phantomjs进行每个testing的未触及的HTML

我写了一个web应用程序,我想要使用摩卡和phantomjs从命令行做一些DOMtesting,我想找出最好的方法来做到这一点。 由于networking应用程序正在进行大量的DOM操作,我希望能够在每次testing中加载全新的DOM。 我试图使用phantomjs的网页模块,但我不知道如何在页面上运行摩卡testing(或者如果这是正确的方式)。 当然,我可以创build一个文件test.html ,其中包含通过脚本标签的mocha,然后运行phantomjs test.html 。 但是我怎样才能确保在每个testing中都没有触动DOM? 为每个具有相同内容的testing添加一个HTML文件将是一个噩梦来支持。 我到目前为止: 我的testrunner.js: var Mocha = require('mocha'), expect = require('expect.js'), fs = require('fs'), path = require('path'); var mocha = new Mocha( { ui: 'bdd' }); // I only add one file for now mocha.addFile( path.join(__dirname, 'tests_integration/test.js') ); mocha.run(function(failures){ process.on('exit', function () { process.exit(failures); }); }); 我的test.js:这是我奋斗的地方,因为我不知道如何在页面内运行testing: var […]

如何在涉及外部依赖时configuration摩卡

我的文件夹结构是 -assets – apps – login -adminLogin.js – data – trackerDb.js -specs – apps -login -adminLogin_spec.js specRunner.js 我有specRunner.js文件,我已经添加为testing初始化​​在package.json中的根 “test”:“node assets / spec_Runner.js”这个specrunner包含了所有需要运行的testing。 adminLogin.js的第一行是define("trackerDb"),function(tracker){ //complete code}现在,当我为这个源文件编写testing用例并运行它时,抛出错误,如"cannot find trackerDb.js" 所以我的问题是我需要传递每个js文件的相对path..如果是这样的话外部模块如jQuery的,下划线等。 我们有没有其他方式可以直接configuration摩卡,以便find每一条path。

用摩卡jsunit testingexpressJwt中间件

我想弄清楚如何使用摩卡unit testing下面的路线。 router.delete('/auth/cut', expressJwt({ secret: global.secret }), function (req, res, next) { if (!req.user) { res.status(401).send().end(); } else { fileProcessor.cut(req, res); } }); 我正在使用validationJsonWebTokens并设置req.user中间件。 这是我的考验 it('DELETE /auth/cut responds Success' , function (done) { request(sharedVars.server) .delete('/api/archive/auth/cut') .set('Authorization', 'Bearer tokenid') .set('filename', 'dictionary.zip') .end(function (err, result) { if (err) { throw err; } expect(result.status).to.equal(200); done(); }); }); 以下几行 […]

通过代理或不使用grunt执行摩卡testing

我想configuration我的摩卡testing是否在代理之后执行。 例如, grunt test 会执行我在本地主机(无代理)的testing文件夹中定义的testing。 和 export http_proxy=PROXY:PORT grunt test mywebsite.com 将执行testing,但通过代理。 那可能吗?

摩卡js在()之后调用太快?

对于摩卡unit testing来说,我有一些摩卡的例子运行良好,但是我一直在努力几个小时才能运行这个程序,不pipe我做什么,after()被调用的方式早于我的感觉。 这是一个例子: var dummyData = require('./dummyData.js') describe('mochaTest', function() { after(function(done) { dummyData.cleanDb(function(){ done(); }) }); it('should hit the db to get dummy data and send', function(done) { dummyData.createDummyData(function(data1, data2, Lookup) { Lookup.lookup({ data1: data1, data2: data2 }, function(err, result) { done(); }); }); }); }) 然后在dummyData.js中: exports.createDummyData = function(cb){ doSomeStuff(function (err, patient) { // […]