Request: request(url, function(error, response, body) λ©”μ†Œλ“œμ— λŒ€ν•œ λ‹¨μœ„ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€

에 λ§Œλ“  2016λ…„ 04μ›” 18일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: request/request

μ•ˆλ…• λͺ¨λ‘,
λ‚΄ 파일의 λŒ€λΆ€λΆ„μ—μ„œ μ•„λž˜ 방법을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

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

λ‹¨μœ„ ν…ŒμŠ€νŠΈμ—μ„œ 이 λ©”μ„œλ“œλ₯Ό μ–΄λ–»κ²Œ μŠ€ν…ν•©λ‹ˆκΉŒ?

이미 sinon.stub(request)λ₯Ό μ‹œλ„ν–ˆμ§€λ§Œ 도움이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Help (please use Stackoverflow) stale

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

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

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

λ˜λŠ” λͺ¨μ˜ μš”κ΅¬

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

λͺ¨λ“  3 λŒ“κΈ€

@simov λŠ” 이미 μ‹œλ„ν–ˆμ§€λ§Œ 찾을 수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€. 이미 이 문제λ₯Ό μ ‘ν•œ μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ?

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

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

λ˜λŠ” λͺ¨μ˜ μš”κ΅¬

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

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 μ΄μƒμ˜ ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰