답변:
spy.and.returnValues (Jasmine 2.4)를 사용할 수 있습니다 .
예를 들면
describe("A spy, when configured to fake a series of return values", function() {
beforeEach(function() {
spyOn(util, "foo").and.returnValues(true, false);
});
it("when called multiple times returns the requested values in order", function() {
expect(util.foo()).toBeTruthy();
expect(util.foo()).toBeFalsy();
expect(util.foo()).toBeUndefined();
});
});
당신이주의해야합니다 몇 가지 일이있다, 또 다른 기능은 비슷한 마법을 것이 returnValue
없이 s
당신이 그것을 사용하는 경우, 자스민 당신을 경고하지 않습니다.
이전 버전의 Jasmine의 경우 spy.andCallFake
Jasmine 1.3 또는 spy.and.callFake
Jasmine 2.0에 사용할 수 있으며 간단한 클로저 또는 개체 속성 등을 통해 '호출'상태를 추적해야합니다.
var alreadyCalled = false;
spyOn(util, "foo").andCallFake(function() {
if (alreadyCalled) return false;
alreadyCalled = true;
return true;
});
.returnValues
하십시오. 두 함수는 분명히 다르지만 여러 인수를.returnValue
전달해도 오류가 발생하지 않습니다. 나는 그 한 캐릭터 때문에 얼마나 많은 시간을 낭비했는지 인정하고 싶지 않습니다.