2015-11-11 9 views
5

यहाँ मेरी नियंत्रक है:त्रुटि: एक जासूस अपेक्षित हैं, लेकिन समारोह मिला

export class testController { 
    static $inject: string[] = ["testService", "$mdDialog", "$state"]; 
    constructor(public _testService: services.testService, private _mdDialog: any, private _$state: any) { 
     this.isCurrentlyEditing = false; 
     this.activate(); 
    } 
    } 

यहाँ उस के लिए मेरी इकाई परीक्षण है:

import {test as service} from './test.service'; 
    import {test as ctrl} from './test.controller'; 

    export function main() { 
    describe("testController",() => { 

    var mdDialog: angular.material.IDialogService; 
    var state: ng.ui.IStateService; 
    var testService: any; 
    var controller: any; 

    beforeEach(function() { 
     angular.mock.module('comp.modules.addField');   
    }); 
    beforeEach(function() { 
     testService = { 
      showCLULayer:() => { } 
     }; 
    }); 

    beforeEach(module('comp')); 
    beforeEach(inject(($injector: any) => { 

     mdDialog = $injector.get('$mdDialog'); 
     state = $injector.get('$state'); 
     testService = $injector.get('testService'); 
     controller = new ctrl.testController(testService, mdDialog, state); 
    })); 

    it("should Create Controller",() => {   
     controller = new ctrl.testController(testService, mdDialog, state); 
     spyOn(testService, 'showCLULayer').and.callThrough(); 
     expect(controller).not.toBeNull(); 
     expect(controller.activate).toHaveBeenCalled(); 
     ////error Expected a spy, but got Function.  
    });  

}); 
} 

परीक्षण त्रुटि फेंकता है जब यह हो जाता है लाइन पर:

expect(controller.activate).toHaveBeenCalled(); 

कह रहा है कि एक्सप एक जासूस ected, लेकिन समारोह मिला। सक्रियण एक ऐसा फ़ंक्शन है जिसे कॉल किया जाता है जब मैं अपने नियंत्रक के कन्स्ट्रक्टर को कॉल करता हूं जिसे मैं परीक्षण कर रहा हूं। क्या कोई मुझे सही दिशा में इंगित कर सकता है।

, लाइन

spyOn(controller, 'activate'); 

से पहले उम्मीद जोड़ने मैं निम्न त्रुटि हो रही है की कोशिश की।

Expected spy activate to have been called. 
    Error: Expected spy activate to have been called. 
+0

ठीक है, इसलिए अब आप एक आधिकारिक परीक्षण विफलता हो रही है। क्या आपके सक्रिय नियंत्रक के तत्कालता के दौरान 'सक्रिय' फ़ंक्शन कहा जाता है? – sma

+0

हां इसे कहा जा रहा है। – Aj1

उत्तर

11

आपको यह जांचने से पहले एक फ़ंक्शन पर जासूसी करने की आवश्यकता है कि इसे कॉल किया गया है या नहीं। इस प्रयास करें:

it("should Create Controller",() => {   
     controller = new ctrl.testController(testService, mdDialog, state); 
     spyOn(testService, 'showCLULayer').and.callThrough(); 
     expect(controller).not.toBeNull(); 

     spyOn(controller, 'activate'); // < ------------Spy on the function 
     expect(controller.activate).toHaveBeenCalled(); 
     ////error Expected a spy, but got Function.  
    });  
+1

ने इस नए त्रुटियों को फेंकने की कोशिश की, जो कि जासूसी सक्रिय करने के लिए अपेक्षित जासूस सक्रिय है। \t त्रुटि: अपेक्षित जासूस सक्रिय करने के लिए सक्रिय किया गया है। – Aj1

+0

क्या आप अपने प्रश्न में नई त्रुटियां पोस्ट कर सकते हैं? – sma

+0

निश्चित रूप से। मैंने इसे अपडेट किया है। – Aj1

संबंधित मुद्दे