जवाबों:
आप spy.and.returnValues (जैस्मीन 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
, यदि आप इसका उपयोग करते हैं, तो चमेली आपको चेतावनी नहीं देगा।
जैस्मीन के पुराने संस्करणों के लिए, आप spy.andCallFake
जैस्मीन 1.3 के लिए या spy.and.callFake
जैस्मीन 2.0 के लिए उपयोग कर सकते हैं , और आपको 'क्लोज' स्टेट का ट्रैक रखना होगा, या तो एक साधारण क्लोजर, या ऑब्जेक्ट प्रॉपर्टी, आदि के माध्यम से।
var alreadyCalled = false;
spyOn(util, "foo").andCallFake(function() {
if (alreadyCalled) return false;
alreadyCalled = true;
return true;
});
.returnValues
- दोनों कार्य स्पष्ट रूप से भिन्न हैं, लेकिन.returnValue
एक त्रुटि को नहीं फेंकने के लिए कई तर्क पारित करना । मैं यह स्वीकार नहीं करना चाहता कि उस एक पात्र के कारण मैंने कितना समय बर्बाद किया।