AngularJS v1.2.26जैस्मीन के साथ कोणीय इकाई परीक्षण: कैसे हटाने या संशोधित करने के लिए spyOn
जैस्मीन v2.2.0
मैं कैसे परिवर्तित या spyOn
के व्यवहार को दूर कर सकते हैं? Error: getUpdate has already been spied upon
var data1 = 'foo';
var data2 = 'bar';
describe("a spec with a spy", function(){
beforeEach(module('app'));
var $q;
beforeEach(inject(function(_updateService_, _$q_){
updateService = _updateService_;
//spy the results of the getUpdate()
$q = _$q_;
var deferred = $q.defer();
deferred.resolve(data1);
spyOn(updateService, 'getUpdate').and.returnValue(deferred.promise);
}));
describe('and here the spy should be different', function() {
it('returns a different value', function() {
var deferred = $q.defer();
deferred.resolve(data2);
spyOn(updateService, 'getUpdate'); //ERROR HERE
updateService.getUpdate.and.returnValue(deferred.promise);
...
});
});
...
जब मैं दूसरे spyOn परीक्षण काम नहीं करता है को दूर: जब मैं इसे ओवरराइड करने की कोशिश, मैं निम्नलिखित त्रुटि मिलती है।
मैं यह कैसे कर सकता हूं?
वहाँ पूरी तरह जासूस दूर करने के लिए रास्ता नहीं है? मूल समारोह पर वापस जाने के लिए? – emersonthis
बड़ा सवाल यह है कि, यदि आप प्रत्येक परीक्षा में समान कार्यक्षमता नहीं रखते हैं, तो वैश्विक जासूस क्यों है? यदि आप प्रत्येक परीक्षण के लिए जासूस सेट करना चाहते हैं, तो प्रत्येक परीक्षण के लिए जासूस सेट करें। – Jan
@ जैन यदि मेरे पास पचास परीक्षण हैं, और उनमें से केवल एक को एक समारोह के लिए एक जासूसी है जो बाकी से अलग है, तो मैं इसे सिर्फ एक ही परीक्षण के बजाय एक बार बदल दूंगा। – theblang