Articles of supertest

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) { […]

获得“错误:string”不是有效的BCrypt哈希“,抛出一个错误:)”在摩卡ExpressJStesting

我有一个使用Passport进行身份validation的MEAN堆栈应用程序。 我试图编写一个unit testing,login并检查您是否被redirect到根( / )。 但是,每当我运行摩卡我得到以下错误信息: 1) POST /home Login test should redirect to / after login: Error: the string "Not a valid BCrypt hash." was thrown, throw an Error 🙂 这是我的unit testingLoginSpec.js : var should = require("should"); var app = require("../app"); var mongoose = require("mongoose"); var User = mongoose.model("User"); var request = require("supertest"); var […]

TypeError:无法读取未定义超类的属性“地址”

我需要一些帮助来解决testingnodejs代码的问题。 我正在使用摩卡和超级特技。 我很困惑与supertest的实施。 我不知道要解决这个问题。 我试图自动下载一个文件。 `describe('GET /entry/:entryId/file/:id/download', function(){ it('should pass download function', function(done){ this.timeout(15000); request(app.webServer) .get('/entry/543CGsdadtrE/file/wDRDasdDASAS/download') .set('Authorization', 'Bearer eyJ0eXAiOiJKV1QiLCJhbGco') .expect(200) .end(function(err, res){ if (err) return done(err); console.log(err, res); done(); }); }); });

如何通过Passport / Facebook战略authenticationSupertest请求/?

我使用Passport.js进行身份validation(Facebook策略),并使用Mocha和Supertest进行testing。 我如何创build一个会话,并与Supertest Facebook的策略进行authentication的请求? 以下是用户未login时的示例testing: describe 'when user not logged in', -> describe 'POST /api/posts', -> it 'respond with 401', (done)-> request(app). post(API.url('posts')). set('Accept', 'application/json'). send(post: data). expect('Content-Type', /json/). expect(401, done) 谢谢你的build议:D

如何使用supertest和代理在摩卡testing中进行authentication请求?

我在login后无法运行已validation的testing(服务器返回401 Unauthenticated )。 var should = require('should'), _ = require('lodash'), app = require('../../../server'), mongoose = require('mongoose'), User = mongoose.model('User'), request = require('supertest'); var user , user1; describe('GET /api/jobs', function () { before(function (done) { user = new User({ provider: 'local', name: 'Fake User', email: 'test@test.com', password: 'password' }); // Clear users before testing User.remove().exec(); request(app) […]

使用摩卡和supertest不能testingDELETE方法

我正在尝试为节点应用程序构build一个RESTful API。 我build立了路线,一切运行良好。 但是,当我尝试testing它,它不能让DELETE方法工作,尽pipe它通常不在testing中正常工作。 这里是服务器和testing的代码。 服务器: // set up var express = require('express'); var app = express(); // create our app w/ express var path = __dirname; //root path // configuration app.configure(function() { app.use(express.static(path)); //app.use(express.logger('dev')); // log every request to the console app.use(express.json()); app.use(express.urlencoded()); // pull information from html in POST app.use(express.methodOverride()); // simulate DELETE […]

NodeJS超级访问会话对象

我用supertesttesting我的Node.js应用程序。 在我的控制器中,我访问会话对象。 为了提出有效的请求,这个会话对象需要填充一些数据。 调节器 // determine whether it is user's own profile or not var ownProfile = userId == req.session.user._id ? true : false; testing it('profile', function (done) { testUserOne.save(function(error, user){ request .agent(server) .get('/profile?userId=' + user._id) .expect('Content-Type', /html/) .expect(200) .expect(/Profile/) .end(done); }) }); 题 我怎样才能嘲笑的REQ /会议对象?

在这个使用supertest和Node.js的testing中,res.body是空的

我正在用supertesttesting一个Node.js API,我无法解释为什么res.body对象超集返回是空的。 数据显示在res.text对象中,但不res.body ,任何想法如何解决这个问题? 我正在使用Express和body-parser : app.use(bodyParser.json()); app.use(bodyParser.json({ type: jsonMimeType })); app.use(bodyParser.urlencoded({ extended: true })); 这是我正在testing的API方法: app.get(apiPath + '/menu', function(req, res) { var expiration = getExpiration(); res.set({ 'Content-Type': jsonMimeType, 'Content-Length': jsonTestData.length, 'Last-Modified': new Date(), 'Expires': expiration, 'ETag': null }); res.json({ items: jsonTestData }); } 以下是我对这个API方法执行的testing: describe('GET /menu', function() { describe('HTTP headers', function() { it('responds with […]

在远程URL上重复使用Supertesttesting

我正在使用MochaJS和SuperTest在开发过程中testing我的API,绝对喜欢它。 不过,我也想把这些相同的testing变成远程testing我的登台服务器,然后把代码推到生产。 有没有办法通过远程URL或代理向远程URL提供请求? 这是我使用的一个testing样本 request(app) .get('/api/photo/' + photo._id) .set(apiKeyName, apiKey) .end(function(err, res) { if (err) throw err; if (res.body._id !== photo._id) throw Error('No _id found'); done(); });