web-dev-qa-db-fra.com

Jasmine spyOn avec des arguments spécifiques

Supposons que j'ai

spyOn($cookieStore,'get').and.returnValue('abc');

C'est trop général pour mon cas d'utilisation. Chaque fois que nous appelons

$cookieStore.get('someValue') -->  returns 'abc'
$cookieStore.get('anotherValue') -->  returns 'abc'

Je veux configurer un spyOn donc j'obtiens des retours différents en fonction de l'argument:

$cookieStore.get('someValue') -->  returns 'someabc'
$cookieStore.get('anotherValue') -->  returns 'anotherabc'

Aucune suggestion?

18
eeejay

Vous pouvez utiliser callFake :

spyOn($cookieStore,'get').and.callFake(function(arg) {
    if (arg === 'someValue'){
        return 'someabc';
    } else if(arg === 'anotherValue') {
        return 'anotherabc';
    }
});
27
Mehraban