2016-04-16 5 views
0

Я пытаюсь создать тест для ионного проекта, у меня тест контроллера следующим образом:Карма/Жасмин не будет вводить ионный контроллер

describe('ShopsCtrl', function() { 

    var controller; 

    beforeEach(module('shoplocal')); 

    it('should foo', function() { 
    expect(true).toBe(true); 
    }); 

    beforeEach(angular.mock.inject(function($controller) { 
    // instantiate shop controller 
    controller = $controller('ShopsCtrl'); 
    })); 

    it('foo should be bar', function() { 
    expect(controller.foo).toBe('bar'); 
    }); 
}) 

определение приложения следующим образом:

(function() { 
    shoplocalRun.$inject = ['$ionicPlatform', '$rootScope']; 
    function shoplocalRun($ionicPlatform, $rootScope) { 
    $ionicPlatform.ready(function() { 
     // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard 
     // for form inputs) 
     if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
     cordova.plugins.Keyboard.disableScroll(true); 
     } 

     if (window.StatusBar) { 
     StatusBar.overlaysWebView(true); 
     StatusBar.style(1); 
     } 
    }); 
    } 

    angular.module('shoplocal', ['ionic', 'ngCordova']) 
    .run(shoplocalRun); 
})(); 

контроллер находится в отдельном файле в WWW/приложение/магазины/shopsCtrl.js:

(function() { 
    ShopsCtrl.$inject = []; 
    function ShopsCtrl() { 
    var vm = this;; 

    vm.foo = "bar"; 
    } 

    angular.module('shoplocal') 
    .controller('ShopsCtrl', ShopsCtrl); 
})(); 

однако, когда я запускаю тесты, все я получаю сюда m karma is:

PhantomJS 2.1.1 (Mac OS X 0.0.0) ShopsCtrl should foo FAILED 
    /Users/ospfranco/marcus/ShopLocal-Ionic/www/lib/ionic/js/ionic.bundle.js:17698:53 
    [email protected]/Users/ospfranco/marcus/ShopLocal-Ionic/www/lib/ionic/js/ionic.bundle.js:13648:24 
    [email protected]/Users/ospfranco/marcus/ShopLocal-Ionic/www/lib/ionic/js/ionic.bundle.js:17658:12 
    [email protected]/Users/ospfranco/marcus/ShopLocal-Ionic/www/lib/ionic/js/ionic.bundle.js:17584:22 
    [email protected]/Users/ospfranco/marcus/ShopLocal-Ionic/bower_components/angular-mocks/angular-mocks.js:2393:60 
PhantomJS 2.1.1 (Mac OS X 0.0.0) ShopsCtrl foo should be bar FAILED 
    /Users/ospfranco/marcus/ShopLocal-Ionic/www/lib/ionic/js/ionic.bundle.js:17698:53 
    [email protected]/Users/ospfranco/marcus/ShopLocal-Ionic/www/lib/ionic/js/ionic.bundle.js:13648:24 
    [email protected]/Users/ospfranco/marcus/ShopLocal-Ionic/www/lib/ionic/js/ionic.bundle.js:17658:12 
    [email protected]/Users/ospfranco/marcus/ShopLocal-Ionic/www/lib/ionic/js/ionic.bundle.js:17584:22 
    [email protected]/Users/ospfranco/marcus/ShopLocal-Ionic/bower_components/angular-mocks/angular-mocks.js:2393:60 
    TypeError: undefined is not an object (evaluating 'controller.foo') in /Users/ospfranco/marcus/ShopLocal-Ionic/tests/unit-tests/shops.controller.tests.js (line 27) 
    /Users/ospfranco/marcus/ShopLocal-Ionic/tests/unit-tests/shops.controller.tests.js:27:22 

любая идея, что происходит?

ответ

0

Оказывается, я пропускал Cordova depedency, я добавил файл Cordova мои тесты конф:

files: [ 
     '../www/lib/ionic/js/ionic.bundle.js', 
     '../www/lib/ngCordova/dist/ng-cordova.js', 
     '../www/app/**/*.js', 
     '../bower_components/angular-mocks/angular-mocks.js', 
     'unit-tests/**/*.js' 
    ], 

теперь все работает правильно.

Смежные вопросы