Request: kasus uji unit untuk metode permintaan (url, fungsi (kesalahan, respons, isi)

Dibuat pada 18 Apr 2016  ·  3Komentar  ·  Sumber: request/request

Halo semua,
di sebagian besar file saya, saya telah menggunakan metode di bawah ini -

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

bagaimana cara menghentikan metode ini dalam pengujian unit?

sudah mencoba sinon.stub(request), tapi itu tidak membantu.

Help (please use Stackoverflow) stale

Komentar yang paling membantu

Coba 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));
    });
});

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

Atau kebutuhan tiruan

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 */))...
    });
});

Semua 3 komentar

@simov sudah mencoba, tetapi tidak dapat menemukannya, apakah ada yang menemukan masalah ini?

Coba 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));
    });
});

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

Atau kebutuhan tiruan

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 */))...
    });
});

Masalah ini secara otomatis ditandai sebagai basi karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Terima kasih atas kontribusi Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat