2016-07-26 1 views
6

का उपयोग करके निरंतर कहा जाता है। मैं एंगुलर 2/टाइपस्क्रिप्ट प्रोजेक्ट पर काम कर रहा हूं और यूनिट-परीक्षण के लिए जैस्मीन का उपयोग कर रहा हूं।आप एक फ़ंक्शन का परीक्षण कैसे करते हैं जिसे चमेली + टाइपस्क्रिप्ट

किसी फ़ंक्शन का परीक्षण कैसे करें जिसे चमेली का उपयोग करके निरंतर कहा जाता है। ईजी। Logo.ts

export const RADIUS: number = 10; 

export class Logo { 
    ... 
    protected drawCircle(x: number, y: number, r: number){...} 

    protected drawLogo(){ 
    this.drawCircle(RADIUS, RADIUS, RADIUS); 
    } 
    ... 
} 

Logo.spec.ts

describe('drawLogo', function() { 
    beforeEach(() => { 
    spyOn(logo, 'drawCircle'); 
    } 
    it('should call drawCircle method with parameters'){ 
    expect(logo.drawCircle).toHaveBeenCalledWith(10, 10, 10); //This fails 
    } 
} 

वहाँ toHaveBeenCalledWith विधि के लिए पैरामीटर के रूप में लगातार गुजर के अलावा अन्य परीक्षण करने के लिए किसी भी अन्य रास्ता नहीं है?

+1

आप 'उपयोग कर सकते हैं logo.drawCircle.calls.mostRecent() का उपयोग करने की जरूरत है। के लिए args' थोड़ा और लचीलापन। – Ioan

+1

आप अपने परीक्षण में drawLogo() को कभी भी कॉल नहीं करते हैं। फिर उसे कैसे काम करना चाहिए ?? – iberbeu

उत्तर

0

आप एक जासूस पहले

spyOn('logo','drawCircle'); 
logo.drawLogo(); 
expect(logo.drawCircle).toHaveBeenCalledWith(10, 10, 10); 
+0

@tymspy तो, समाधान क्या है? क्योंकि आपने कोड में वही किया है जिसे आपने अभी पोस्ट किया है – iberbeu

+1

@iberbeu मैंने आपके द्वारा उल्लिखित विधि को कॉल करने से चूक गए हैं। – tymspy

0

अपने कल्पना फाइल करने के लिए RADIUS आयात और फिर

expect(logo.drawCircle).toHaveBeenCalledWith(RADIUS, RADIUS, RADIUS); 
संबंधित मुद्दे