में ब्रॉडकास्ट ईवेंट का परीक्षण कैसे कर सकता हूं मेरे पास एक नियंत्रक है जो जड़कोड़ पर एक प्रसारण कार्यक्रम उत्सर्जित करता है। मैं परीक्षण करना चाहता हूं कि ब्रोकास्ट इवेंट सही ढंग से निकाल दिया गया है।मैं कोणीयजेएस
मेरी नियंत्रक में मेरे कोड इस तरह दिखता है:
$scope.$watch("pageIndex", function(){
if($scope.pageIndex == 4)
{
// emit social share
$rootScope.$broadcast('myEvent');
}
});
मैं निम्नलिखित कोड के साथ परीक्षण करने के लिए प्रयास किया है:
it('Should call myEvent when pageIndex is 4',function(){
scope.pageIndex = 4;
scope.$apply();
expect(rootScope.$on).toHaveBeenCalledWith('myEvent');
});
लेकिन यह है कि कोड नहीं बुलाया जाता है मुझसे कहता है, जिसे मैंने मैन्युअल रूप से परीक्षण किया है कि यह करता है। मैंने फिर निम्नलिखित कोड के साथ प्रयास किया है:
it('Should call myEvent when pageIndex is 4',function(){
var listener = jasmine.createSpy('listener');
rootScope.$on('myEvent', listener);
scope.pageIndex = 4;
scope.$apply();
expect(listener).toHaveBeenCalled();
});
लेकिन उसी नकारात्मक परिणाम के साथ। क्या यह जांचने का कोई तरीका है कि एक ईवेंट प्रसारित किया जाता है?
यह पूरी तरह से काम करता है..चर्स साथी। –
@ माइक: मोचा/चाई के साथ आप इस समाधान का कोई उदाहरण दिखा सकते हैं? –
@RyanConaway - चाई के लिए ऐसा लगता है कि आपको एक spy प्लगइन की आवश्यकता होगी जैसे https://github.com/chaijs/chai-spies। मोचा के लिए, http://sinonjs.org/ देखें। उन दोनों के लिए प्रलेखन इस बात को लेकर स्पष्ट हैं कि आप इस समाधान को पुस्तकालय के साथ कैसे प्राप्त करेंगे। –