小编Raj*_*Raj的帖子

在单元测试用例中模拟Angular $窗口

我一直在尝试对使用Typescript编写的角度自定义服务进行单元测试.该服务读取在Window对象上定义的全局变量.我已经做出了承诺,以便将来我可以进行AJAX调用来获取这些信息.这是我的精简服务: -

export class ProxyDetectiveService {
    public static $inject = [
        $window,
        $q
    ];

    constructor(private $window:ng.IWindowService,
                private $q:ng.IQService) {
    }

    public getProxyUserObject = ():ng.IPromise<any> => {
        this.log.debug('Proxy User Service called, to get proxy user details');

        var deferred = this.$q.defer();
        var proxyDetails = this.$window.portalObject;
        deferred.resolve(proxyDetails);

        return deferred.promise;
    };

}
Run Code Online (Sandbox Code Playgroud)

我的单位测试案例: -

describe('Proxy Detective Service - Unit Test Cases', () => {
    var proxyDetectiveService:any,
        $window:ng.IWindowService;

    beforeEach(() => {
        module('myApp');
    });

    beforeEach(inject(($injector:ng.auto.IInjectorService, _$window_) => {
        proxyDetectiveService = $injector.get('ProxyDetectiveService');
        _$window_ = {
            portalObject: { …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jasmine angularjs typescript

4
推荐指数
1
解决办法
758
查看次数