J'ai une fonction que j'aimerais tester et qui appelle deux fois une méthode API externe, en utilisant des paramètres différents. J'aimerais simuler cette API externe avec un espion Jasmine et renvoyer différentes choses en fonction des paramètres. Existe-t-il un moyen de faire cela dans Jasmine ? Le mieux que j'ai pu trouver est un hack utilisant andCallFake :
var functionToTest = function() {
var userName = externalApi.get('abc');
var userId = externalApi.get('123');
};
describe('my fn', function() {
it('gets user name and ID', function() {
spyOn(externalApi, 'get').andCallFake(function(myParam) {
if (myParam == 'abc') {
return 'Jane';
} else if (myParam == '123') {
return 98765;
}
});
});
});