Existe-t-il un moyen pratique de simuler les objets Requête HTTP et Réponse pour les middlewares de tests unitaires?
Cela ressemble à la fois https://github.com/howardabrams/node-mocks-http et https://github.com/vojtajina/node-mocks peut être utilisé pour créer un simulacre http.ServerRequest
et http.ServerResponse
objets.
D'après l'étiquette, il semble que cette question concerne Express. Dans ce cas, supertest est très bon:
var request = require('supertest')
, express = require('express');
var app = express();
app.get('/user', function(req, res){
res.send(201, { name: 'tobi' });
});
request(app)
.get('/user')
.expect('Content-Type', /json/)
.expect('Content-Length', '20')
.expect(201)
.end(function(err, res){
if (err) throw err;
});
Pour un usage général des nœuds, Flatiron Nock ressemble à une bonne option:
var nock = require('nock');
var example = nock('http://example.com')
.get('/foo')
.reply(200, { foo: 'bar' });
var http = require('http');
var options = {
Host: 'example.com',
port: 80,
path: '/foo',
method: 'GET'
}
var req = http.request(options, function(res) {
res.on('data', function(chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function(e) {
console.log('error: ' + e);
});
req.end();
Sortie:
CORPS: {"foo": "bar"}
j'utilise nodejutsu mock:
https://github.com/nodejitsu/mock-request
Peut-être que c'est ce que vous recherchez.
J'ai écrit une bibliothèque pour simuler les réponses des requêtes effectuées via HTTP standard ou via le modèle de requête:
Consultez https://github.com/timsavery/node-hmock ou npm install hmock
... tout commentaire est le bienvenu! La solution a bien fonctionné pour moi jusqu'à présent.
Je vous encourage à utiliser motty . pourquoi avons-nous besoin d'un autre code?
Mockery semble très bien pour cela.
Essentiellement, il pirate les appels require
et renvoie un autre stub d'objet/fonction que vous spécifiez.