Tag: supertest

Supertest + Knex.js =当前客户端没有定义池

我使用超级(在摩卡内)来testing我的应用程序,这是目前使用knex.js数据库的目的。 一切正常和knex的旧版本,(0.5.x)。 现在我想用最新的knex版本。 在大多数情况下,使用 request = supertest(app) 对我来说工作正常,但还有其他情况下我需要testing几个请求,而不重复使用Cookie,所以… request = supertest.agent(app) 这发生了什么? 它结束了主题中描述的错误。 我已经添加了一些自定义日志“acquireConnection”,“releaseConnection”,“initializePool”和“destroy”函数到内核库,看看发生了什么,输出如下所示: Adquiring connection from pool {someCustomPoolIdYSet) Adquiring connection from pool {someCustomPoolIdYSet) Releasing connection from pool {someCustomPoolIdYSet) Adquiring connection from pool {someCustomPoolIdYSet) Adquiring connection from pool undefined [Error] …….. "There is no pool defined on the current client" 任何帮助,将不胜感激。 提前致谢。

如何在angular度全堆生成器生成的已authentication端点中运行超类

我正在尝试使用supertest来testing我使用yeoman angular度全堆栈生成器进行身份validation的设置的行为。 我尝试使用supertests文档中描述的简单auth,但我仍然得到404错误。 端点和testing按以下方式进行configuration: 服务器/ API /事/ index.js 'use strict'; var express = require('express'); var auth = require('../../auth/auth.service'); var controller = require('./thing.controller'); var router = express.Router(); router.get('/', auth.isAuthenticated(), controller.index); module.exports = router; fullstack-DEMO /服务器/ API /事/ thing.spec.js 'use strict'; var should = require('should'); var app = require('../../app'); var request = require('supertest'); var User = require('./user.model'); […]

摩卡路线testing不是asynchronous执行的

我已经开始与摩卡工作,我有一个特定的testing案例的问题。 这里是代码: var assert = require("chai").assert; var request = require('supertest'); var http = require("http"); var conf = require("../config/config"); var app = require("../app"); var mongoose = require('mongoose'); var User = mongoose.model('User'); describe('User controller', function(){ describe('POST /register', function(){ it('should return false when the parameters are not unique', function (done) { request(app) .post('/user/register') .send({username:"janette_doe", email:"janette_doe@gmail.com", password:"test123"}) .expect('Content-Type',/json/) .expect({success:true, […]

在响应后访问Supertest中的“req”对象

在testing请求的同时/之后,有没有什么方法可以直接访问supertest对象中的req对象? 我想testing我的passport策略,所以我想检查req.user , req.session ,也许还有其他的。 我知道我可以testing页面redirect或闪光,因为这些都是我的策略所做的,但看起来req对象上是否有用户似乎也很有用。 如果我这样做,我也可以检查一次有多less用户。 我将使用“本地注册”策略来签署用户,因此定义如下: 'use strict'; // get passport & mongoose var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var UserModel = require('mongoose').model('User'); module.exports = function() { // signup function passport.use('local-signup', new LocalStrategy({ passReqToCallback: true // pass the entire request to the callback }, function(req, username, password, done) { process.nextTick(function() { […]

尝试使用node.js supertest发布multipart / form-data

我试图使用Node.js supertest来testing我写的一些REST API。 我需要发送一个相当于以下CURL请求的请求: curl -X POST -F api_key=KEY -F image=@my_file http://localhost:3000/v1/upload 我尝试了以下,但我得到了Uncaught TypeError: first argument must be a string or Buffer 。 request.post('/v1/upload') .type('form') .field('api_key', 'abcd') .attach('image', 'some path') .end(function(err, res) { res.body.error.should.equal('Invalid username/api_key.'); done(); }); 我也尝试发送这样的: request.post('/v1/upload') .type('form') .field('api_key', 'abcd') .attach('image', 'some path') .end(function(err, res) { res.body.error.should.equal('Invalid username/api_key.'); done(); }); 但服务器只能parsingfile upload请求,而不能parsingapi_key 。

supertest:testingredirecturl

超级,我可以testingredirect代码302 var request = require('supertest'); var app = require('../server').app; describe('test route', function(){ it('return 302', function(done){ request(app) .get('/fail_id') .expect(302, done); }); it('redirect to /'); }); 我怎么能testingurl的目标redirect?

为什么我的茉莉花testing在DEFAULT_TIMEOUT_INTERVAL之前超时?

相关: 无法为茉莉花设置超时 Jasmine 2.4.1 我的testing报告由于超时而失败,即使超时值似乎大于所报告的时间。 我正在这样做: describe('tests content controller', function(){ beforeAll(function(done) { jasmine.DEFAULT_TIMEOUT_INTERVAL= 120000; //… }) fit('/content GET should return 200',function(done){ request(app) .get('/content') .set('Authorization', "bearer " + requestor.token) .set('Accept', 'application/json') .expect(200) .end(function (err, res) { console.log('timeout',jasmine.DEFAULT_TIMEOUT_INTERVAL); //prints 120000 if (err) done.fail(err); expect(res.statusCode).toBe(200); done(); }) }); 然后这个testing失败,与: 1) tests content controller /content GET should return 200 […]

摩卡supertest ECONNRESET

我正在用Mocha和SupertesttestingNodejs服务器。 testing套件已经发展到1500多个testing。 突然之间,虽然所有的testing代码仍然有效,但是我的testing套件却失败了,并报错: { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' } 如果我注释掉一些先前运行的testing,导致错误更改的testing。 什么导致这种精神错乱?

SuperTest的期待与Chai.expect

我很困惑,所以如果我使用SuperTest ,看起来好像有自己的期望断言,那么我不需要担心使用Chai? 或者当我需要柴时,Supertest知道它并且正在使用它作为期望机制?

超级testing,testing安全的REST API

我正在编写由jwt保护的REST API的集成testing。 一个API操作POST /user/token返回一个给定username和password的jwt ,然后使用该令牌来执行一系列操作,例如: GET /user/:id 在路由使用jwt({secret: secret.secretToken}) ,令牌包含在http头Authorization 。 当使用超级testing进行testing时,我可以进行嵌套testing,但是我想先获取令牌,然后将此令牌用于其他操作testing。 POST /user/token => 12345 GET /user/:id, `Authorization Bearer 12345` GET /user/:foo, `Authorization Bearer 12345` 如何避免为每个操作testing(见下文)生成一个新的标记,但只使用一个由POST / user / token生成的标记。 it('should get a valid token for user: user1', function(done) { request(url) .post('/user/token') .send({ _id: user1._id, password: user1.password }) .expect(200) // created .end(function(err, res) { […]