Request: casos de prueba unitaria para el método de solicitud (url, función (error, respuesta, cuerpo)

Creado en 18 abr. 2016  ·  3Comentarios  ·  Fuente: request/request

Hola a todos,
en la mayoría de mis archivos he usado el método siguiente:

var request = require('request');
request(url, function(error, response, body) {
    if (!error && response.statusCode === 200) {

¿Cómo puedo eliminar este método en las pruebas unitarias?

ya probé sinon.stub (solicitud), pero eso no ayuda.

Help (please use Stackoverflow) stale

Comentario más útil

Prueba proxyquire :

var proxyquire = require('proxyquire');
var requestSpy = jasmine.createSpy();
var myFile = proxyquire('../../file/that/requires/request', {
    request: requestSpy,
});
describe('the test', function() {
    it('should use the mock', function() {
        myFile.makeARequest();
        expect(requestSpy).toHaveBeenCalledWith(jasmine.objectContaining({
            headers: jasmine.objectContaining({
                Accept: 'application/json',
            }),
            method: 'GET',
        }), jasmine.any(Function));
    });
});

Ejemplo: http://vansande.org/2015/03/22/unit_testing_with_mocks_in_node_js/

O simulacro de requerir

var mock = require('mock-require');
var requestSpy = jasmine.createSpy();
mock('request', requestSpy);
var myFile = require('../../file/that/requires/request');
describe('the test', function() {
    it('should use the mock', function() {
        myFile.makeARequest();
        expect(requestSpy).toHaveBeenCalled();
        // and you should be able to invoke the callback also, e.g.
        // var callback = requestSpy.calls.first().args[1];
        // expect(callback(/* vars */))...
    });
});

Todos 3 comentarios

@simov ya lo intentó, pero no pudo localizarlo, ¿alguien ya se encontró con este problema?

Prueba proxyquire :

var proxyquire = require('proxyquire');
var requestSpy = jasmine.createSpy();
var myFile = proxyquire('../../file/that/requires/request', {
    request: requestSpy,
});
describe('the test', function() {
    it('should use the mock', function() {
        myFile.makeARequest();
        expect(requestSpy).toHaveBeenCalledWith(jasmine.objectContaining({
            headers: jasmine.objectContaining({
                Accept: 'application/json',
            }),
            method: 'GET',
        }), jasmine.any(Function));
    });
});

Ejemplo: http://vansande.org/2015/03/22/unit_testing_with_mocks_in_node_js/

O simulacro de requerir

var mock = require('mock-require');
var requestSpy = jasmine.createSpy();
mock('request', requestSpy);
var myFile = require('../../file/that/requires/request');
describe('the test', function() {
    it('should use the mock', function() {
        myFile.makeARequest();
        expect(requestSpy).toHaveBeenCalled();
        // and you should be able to invoke the callback also, e.g.
        // var callback = requestSpy.calls.first().args[1];
        // expect(callback(/* vars */))...
    });
});

Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

chenby picture chenby  ·  3Comentarios

xin7c picture xin7c  ·  3Comentarios

lupo9557 picture lupo9557  ·  3Comentarios

ghost picture ghost  ·  3Comentarios

jasonxia23 picture jasonxia23  ·  3Comentarios