Karma-Jasmine:如何在工厂中测试ionicModal?

时间:2016-01-06 12:27:17

标签: javascript angularjs ionic-framework jasmine karma-jasmine

情况:

我正在测试我的Angular / Ionic应用程序。

我正在测试锁屏并遇到模式问题。

我收到以下错误:

TypeError: Cannot read property 'hide' of undefined

我已经阅读了一些控制器解决方案,但我还没有看到任何工厂解决方案。

代码:

工厂:

.factory('Service', function ($ionicModal) {
    var obj = {};

    var setup;

    /**
     * Sets the lockscreen code.
     */
    obj.setCode = function (code1, code2) {
        if (code1 == code2) {
            window.localStorage["code"] = code1;
            setup.hide();
        } 
    };
    /**
     * Opens the lockscreen setup.
     */
     obj.showSetup = function () {
   if (window.localStorage["code"] == undefined) {
      $ionicModal.fromTemplateUrl('.../xy.html')
          .then(function (modal) {
                setup = modal;
                setup.backdropClickToClose = false;
                setup.hardwareBackButtonClose = false;
                setup.show();
                        });
                }
       };
});

测试:

describe('Testing Lockscreen', function(){
  var Service;

  beforeEach(module('starter'));

    var fct = null;
    beforeEach(inject(function(Service) {
      fct = Service;
    }))

 it('on success', function(){

     spyOn(fct, 'setCode').and.callThrough()

     fct.setCode('1234','1234');
     expect(window.localStorage["code"]).toBe('1234');
    })
});

问题:

我该如何解决这个问题?

非常感谢!

0 个答案:

没有答案