angularjs – 错误:期待间谍,但得到了功能

前端之家收集整理的这篇文章主要介绍了angularjs – 错误:期待间谍,但得到了功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的控制器:
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,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();

说,期待一个间谍,但得到了功能. Activate是一个函数,当我调用我正在测试的控制器的构造函数调用它.有人可以指出我正确的方向.

尝试添加线

spyOn(controller,'activate');

在期待之前,我收到以下错误.

Expected spy activate to have been called.
   Error: Expected spy activate to have been called.
在测试是否调用函数之前,您需要监视函数.试试这个:
it("should Create Controller",'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.      
    });

猜你在找的Angularjs相关文章