Salut tout le monde,
dans la plupart de mes fichiers, j'ai utilisé la méthode ci-dessous -
var request = require('request');
request(url, function(error, response, body) {
if (!error && response.statusCode === 200) {
comment puis-je remplacer cette méthode dans les tests unitaires?
déjà essayé sinon.stub(request), mais ça n'aide pas.
@simov a déjà essayé, mais n'a pas
Essayez 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));
});
});
Exemple : 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 */))...
});
});
Ce problème a été automatiquement marqué comme obsolète car il n'a pas eu d'activité récente. Il sera fermé si aucune autre activité ne se produit. Merci pour vos contributions.
Commentaire le plus utile
Essayez proxyquire :
Exemple : http://vansande.org/2015/03/22/unit_testing_with_mocks_in_node_js/
Ou simuler-exiger