Farklı parametreler kullanarak, iki kez bir harici API yöntemini çağıran bir testi kullanmak istiyorum. Bu harici API'yi bir Jasmine casusuyla dalgalandırmak ve parametrelere göre farklı şeyler vermek istiyorum. Bunu Jasmine'de yapmanın bir yolu var mı? Ben ile gelip en iyi andCallFake kullanarak kesmek:Yasemin casuslarını argümanlara göre değiştirmenin herhangi bir yolu var mı?
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;
}
});
});
});
Bu 'şimdi and.callFake' olduğunu - http://jasmine.github.io/2.2/introduction.html#section-Spies:_ farklı vaatlerde dönmek zorunda kaldı
and.callFake
–, böylece dönüş biraz farklı görünüyordu: get q.when (params [myParam]) ;. Aksi halde, bu benim sorunumun çözümünde bir noktaydı. Hayalimdeki çözüm, "and.returnValue" çağrılarını değiştirmek olurdu. –
, yasemin, bunu daha iyi açıklayabilmesi gerektiğini düşünüyor. "SpyOn (fake, 'method'). WithArgs ('abc'). Ve.returnValue ('Jane')' ve 'spyOn (sahte, 'method'). WithArgs ('123') ve .returnValue (98765) gibi.) '. – jrharshath