Hallo zusammen,
In den meisten meiner Dateien habe ich die folgende Methode verwendet -
var request = require('request');
request(url, function(error, response, body) {
if (!error && response.statusCode === 200) {
Wie stumme ich diese Methode in Unit-Tests?
schon versucht sinon.stub(request), aber das hilft nicht.
@simov hat es bereits versucht, konnte es aber nicht finden, ist jemand schon auf dieses Problem gestoßen?
Versuchen Sie es mit 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));
});
});
Beispiel: http://vansande.org/2015/03/22/unit_testing_with_mocks_in_node_js/
Oder mock-require
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 */))...
});
});
Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität hatte. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.
Hilfreichster Kommentar
Versuchen Sie es mit proxyquire :
Beispiel: http://vansande.org/2015/03/22/unit_testing_with_mocks_in_node_js/
Oder mock-require