Articles of 摩卡

在Mocha中依次运行两个不同的testing文件

我有两个自己的描述块的testing文件。 在每个描述块中,存在操纵mongoose模式的块(由两个文件共享)之前。 有没有办法顺序运行这两个testing文件,以便一个文件的“之前”不阻止另一个文件的testing。

当使用JavaScriptdynamic加载页面内容时,使用Mocha + Zombie.js进行验收testing

我有一个问题,我一直在寻找解决scheme。 我有一个页面(快速应用程序),它有一个div#内容。 起初,它没有任何内容。 在页面加载时,调用JavaScript函数来确定用户是否已经login。如果不是,则在div#内容中填充login表单。 否则,用户configuration文件将显示在同一个div中。 这个程序是一个单页的应用程序。 所有的操作都由Ajax处理。 大部分内容也是dynamic生成的。 现在,我正在尝试用Mocha和Zombie.js写一些validationtesting。 但是,即使是这样一个简单的testing也不会通过: assert.equal(this.browser.text('div#content h1'), 'Login'); ..因为div#内容是空的。 我只是想知道是否有办法让所有dynamic填充内容的页面。 我尝试了browser.html(),将debug设置为true,将runScripts设置为true,对div#内容使用browser.wait(),以及许多其他方法,但是无法使其工作。 任何帮助将不胜感激。 谢谢!

如何将摩卡testing与摩卡幻影testing相结合

testing用例: 服务器/ appTest.js 客户/ clientTest.js clientBundle.js clientTest.html 都是摩卡testing。 对于客户端testing,我使用sinon,并使用它们来生成一个包 – clientBundle.js并使用mocha-phantomjs进行无头testing。 现在我已经将npm test定义为mocha test/server && mocha-phantomjs test/clientTest.html 。 它给我两个分别的结果。 我怎么能把它们合并成一个 – 比如说mocha test/all.js 在test/all.js里面试过require()s 。 mocha-phantomjs不能用作节点内的库。 它只能用作CLI。

在超级请求中设置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。