2012-10-09 16 views

Respuesta

-1

Pruebe SuperTest en combinación con superagent. Todas las pruebas de express están escritas con SuperTest.

Por ejemplo:

var request = require('supertest') 
    , express = require('express'); 

var app = express(); 

app.get('/user', function(req, res){ 
    res.send(201, { name: 'tobi' }); 
}); 

describe('GET /users', function(){ 
    it('respond with json', function(done){ 
    request(app) 
     .get('/user') 
     .set('Accept', 'application/json') 
     .expect('Content-Type', /json/) 
     .expect(200, done); 
    }) 
}) 
+1

Estoy buscando en la prueba del cliente HTTP node.js y no en el servidor ... –

+0

@zemirco, ¿cómo paso un servidor de aplicaciones en vivo a este archivo de prueba? Prefiero ejecutar la prueba por separado del servidor. –

1

Usted puede utilizar nock. puede interceptar la solicitud http y con ciertas propiedades

0

He utilizado Sinon.js para este tipo de cosas.

sinon = require 'sinon' 
assert = require "assert" 
describe 'client', -> 
    describe '#mainRequest()', -> 
    it 'should make the correct HTTP call', -> 
     url = "http://some.com/api/blah?command=true" 
     request = {} 
     sinon.stub request, 'get', (params, cb) -> cb null, { statusCode: 200 }, "OK" 
     client = new MyHttpClient request 
     client.sendRequest() 
     assert.ok request.get.calledWith(url) 

Para simplificar la clase de pruebas MyHttpClient toma un objeto de petición como parametro al constructor. Si no se proporciona, solo utiliza 'solicitud'.

Cuestiones relacionadas