Жасмин spyOn с конкретными аргументами
Предположим, что у меня есть
spyOn($cookieStore,'get').and.returnValue('abc');
Это слишком общее для моего варианта использования. Каждый раз, когда мы вызываем
$cookieStore.get('someValue') --> returns 'abc'
$cookieStore.get('anotherValue') --> returns 'abc'
Я хочу настроить spyOn, поэтому я получаю разные результаты на основе аргумента:
$cookieStore.get('someValue') --> returns 'someabc'
$cookieStore.get('anotherValue') --> returns 'anotherabc'
Какие-либо предложения?
Ответы
Ответ 1
Вы можете использовать and.callFake#section-Spies:_and.callFake
rel="nofollow noreferrer">callFake:
spyOn($cookieStore,'get').and.callFake(function(arg) {
if (arg === 'someValue'){
return 'someabc';
} else if(arg === 'anotherValue') {
return 'anotherabc';
}
});