Tag: supertest

摩卡testing,链接超级要求

所以我试图在我的快速应用程序中testing一个路线,为了做到这一点,我需要先login一个user然后再打我的电话。 我在beforeEach函数中创build并保存一个user 。 这是我写的testing: it('should update username', function(done){ var _this = this; req.post('/login') .send(_this.data) .then(function(res){ req.put('/users/' + res.body.user._id) .send({ username: 'robert'}) .expect(200) .end(function(err, res){ if(err) return done(err); console.log(res.body); res.body.success.should.equal(true); res.body.user.username.should.match(/robert/); done(); }); }); }); 这是我运行testing时得到的输出: Users Routes Authenticated POST /login 200 195.059 ms – 142 PUT /users/568a432e1daa24083fa6778a 401 2.785 ms – 21 1) should update […]

Supertest +确定gzipResponsefile upload

我越来越 TypeError: Cannot read property 'status' of undefined 当试图上传一个文件使用supertest到一个简单的restify服务器,打开gzipResponse 。 版本等: $ npm list | grep 'super\|mocha\|restify' ├─┬ mocha@2.4.5 ├─┬ restify@4.0.4 └─┬ supertest@1.2.0 └─┬ superagent@1.8.3 $ node -v v5.5.0 服务器: const restify = require('restify'); const server = restify.createServer(); server.use(restify.gzipResponse()); server.put('image', (req, res) => { res.send(200); }); module.exports = server; 考试: const request = require('supertest'); const […]

Koa app在超级testing时挂起

我的超级用户/磁带testing文件如下所示: var test = require('tape'); var app = require('../../api'); var agent = require('supertest').agent var supertestCompatibleServer = agent(app.callback()); test('GET /Campus.svc', function (t) { supertestCompatibleServer .get('/Campus.svc') .expect(200) .expect('Content-Type', /json/) .end(function (err, res) { t.ifError(err, 'No error'); t.end(); }); }); 我正在testing的端点在启动服务器时可以正常工作,并且可以通过curl或浏览器手动点击。 testing运行良好,并通过,但他们只是挂在最后而不是完成。 实际的端点代码只是碰到数据库,并以json的forms返回一些logging。 什么可能导致testing挂起,我该如何解决?

在WebStorm中使用supertest会产生“参数types不能分配给参数types”和“未parsing的函数或方法”

我在WebStorm IDE中开发了一个nodejs项目。 我使用摩卡超单元作为我的unit testing框架。 WebStorm显示了两个警告: Argument type app|exports|module.exports is not assignable to parameter type Function|Server和Unresolved function or method get() 。 我尝试从File -> Settings -> Languages & Frameworks -> JavaScript -> Libraries -> Download但没有发生任何事情下载和安装supertest库。 所以我直接从https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/supertest下载它们,并手动添加它们,但WebStorm仍然产生相同的警告。 这是我的server.js代码: const express = require('express'); const app = express(); app.get('/', (req, res) => { res.status(200).end(); }); app.listen(3000); module.exports = app; 这是我的servertest.js代码: […]

坚持摩卡和超级应用程序会议

我有一个快速的应用程序,authentication由JWT处理,我只需login后在会话中存储令牌。 req.session.JWToken = '<token>'; 身份validation中间件如下所示: this.use('(^\/admin')', expressJWT({ secret: 'secret', getToken: function fromHeaderOrQuerystring (req) { if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') { return req.headers.authorization.split(' ')[1]; } else if (req.query && req.query.token) { return req.query.token; } else if (req.session.JWToken) { return req.session.JWToken; } return null; } }).unless({path: ['/login', '/signup']})); 我需要testing这个使用摩卡和supertest,我试了下面的代码: var app = require('./../app'); var request […]

如何模拟客户端中止

我被困在我的一个testing中。 在我的testing中,我需要检测客户端(浏览器)已经取消或中止图片上传。 我的问题是如何模拟连接中止的时间。 在我的控制器中,我可以模拟连接丢失,并且我的代码正确地反应。 但正如我所提到的问题仍然是如何从testing中触发。 我使用摩卡3.2.0作为testing套件,而在控制器端我使用多方 。 这是原始的代码: return new Promise((resolve, reject) => { let form = new multiparty.Form(); let fileCount = 0; form.on('part', function (part) { fileCount++; let tmpFile = path.join(os.tmpDir(), `${userId}_${timePrefix}_${path.basename(part.filename)}`); part.pipe(fs.createWriteStream(tmpFile)); part.on('end', () => { resolve(fs.createReadStream(tmpFile)); }); part.on('error', function (error) { reject(error); }); }); form.on('error', (error) => { reject(new LogicalError( `Image input […]

摩卡testing永远运行

大家好,感谢您的关注。 我正在尝试使用摩卡和超级terminal来运行testing,即使这些testing工作正常,testing也会一直运行。 为了避免这种情况,我在after()方法中添加了一个“process.exit(0)”,所以它可以正确的构build,但是这对于“隔离”看起来确实是错误的(除此之外,它看起来很糟糕:-)) 我的package.json: { "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "nodejs ./bin/www", "test": "mocha" }, "dependencies": { "body-parser": "~1.0.0", "cookie-parser": "~1.0.1", "debug": "~0.7.4", "ejs": "~0.8.5", "express": "~4.0.0", "is-my-json-valid": "^2.16.1", "knex": "^0.13.0", "morgan": "~1.0.0", "mysql": "^2.14.1", "static-favicon": "~1.0.0" }, "devDependencies": { "mocha": "^4.0.0", "supertest": "^3.0.0", "chai": "^4.1.2", "util": "^0.10.3" } } 我的testing: […]

使用BusterJS,ExpressJS和SuperTest的问题

我有一些使用ExpressJS + BusterJS + SuperTesttesting路由的问题。 var app = require("../../app/app.js"), buster = require("buster"), expect = buster.referee.expect, http = require('http'), request = require('supertest'); buster.spec.expose(); describe("V2 API – group/get", function () { var server; beforeEach(function() { server = http.createServer(app).listen(app.get('port'), function () { console.log('Express server listening on port ' + app.get('port')); }); }); it("is accessable", function() { request(server) .get('/') […]

使用超级testing时,将节点应用程序重置为已知状态

我经常使用supertest对我的节点应用程序写黑盒testing。 该应用程序加载数据库设备和黑盒testing运行数据库的努力。 我想重置某些testing之间的应用程序状态(所以我可以运行不同的testing组合,而不必担心特定的数据库状态)。 理想的事情是能够用另一个重新加载应用程序: var app = require(../app.js).app; 但是这只发生一次,当我运行摩卡(因为它应该与require调用)。 我想我可以通过在一个batch file的多个mocha调用中包装我的testing,但是我的开发人员习惯于运行npm test ,我希望他们继续这样做。 我怎么能这样做?

testingexpress API需要本地服务器

我读过我可以在一个快速应用程序(nodeJS)与超级testing运行摩卡testing,因此它不需要在不同的terminal会话中运行应用程序。 无论我尝试它总是以连接错误结束。 为了configuration我们的持续集成,显然集成和unit testing(mocha,supertest,should)应该能够运行,而节点服务器也不运行 书面testing是validation我们的应用程序的内部API端点谁可以解释如何运行testing,而无需运行应用程序的快递服务器,以便他们可以与例如strider