ПОЛОЖЕНИЕ:Карма-Жасмин: Как протестировать ионныйМодальный?
В моем приложении Ионные я тестирую правильное открытие модального.
Я сделал несколько попыток, но я получаю следующее сообщение об ошибке:
TypeError: Cannot read property 'then' of undefined
ФУНКЦИЯ:
$scope.open_register_modal = function()
{
$ionicModal.fromTemplateUrl('templates/project_register.html', {
scope: $scope
}).then(function(modal) {
$scope.modal_register = modal;
$scope.modal_register.show();
});
};
ТЕСТ:
describe('App tests', function() {
beforeEach(module('my_app.controllers'));
beforeEach(inject(function(_$controller_, _$rootScope_)
{
$controller = _$controller_;
$rootScope = _$rootScope_;
$scope = _$rootScope_.$new();
$ionicModal =
{
fromTemplateUrl: jasmine.createSpy('$ionicModal.fromTemplateUrl'),
then : function(modal){} // <--- attempt
};
var controller = $controller('MainCtrl', { $scope: $scope, $rootScope: $rootScope, $ionicModal: $ionicModal });
}));
describe('Modal tests', function()
{
it('should open register modal', function()
{
$scope.open_register_modal();
expect($ionicModal).toHaveBeenCalled();
});
});
});
ПОПЫТКИ:
Вот некоторые из попыток инициализировать $ ionicModal:
1.
$ionicModal =
{
fromTemplateUrl: jasmine.createSpy('$ionicModal.fromTemplateUrl'),
then : function(modal){}
};
2.
$ionicModal =
{
fromTemplateUrl: jasmine.createSpy('$ionicModal.fromTemplateUrl'),
then: jasmine.createSpy('$ionicModal.then')
};
3.
$ionicModal =
{
fromTemplateUrl: jasmine.createSpy('$ionicModal.fromTemplateUrl'),
then: jasmine.createSpy('$ionicModal.fromTemplateUrl.then')
};
4.
$ionicModal = jasmine.createSpyObj('$ionicModal', ['show', 'close','fromTemplateUrl']);
Но все они дают ту же ошибку:
TypeError: Cannot read property 'then' of undefined
ВОПРОС:
Как я могу пройти метод .then внутри теста?
Как я могу правильно проверить ionicModal?
Большое спасибо @Pablo! Сейчас работает! Я не получаю никаких ошибок, и переменная внутри modal_register() корректно протестирована, что становится истинным после вызова функции.Я все еще должен понять, как на самом деле проверить правильность функционирования модального (open, close), но теперь я решаю главный вопрос! – johnnyfittizio