В моем контроллере у меня есть оператор, назначающий пустую функцию в переменной на основе условия.Jasmine: проверьте, является ли переменная пустой функцией
var vm = this;
vm.emptyFunction = angular.isFunction(callback) ? callback : function() {};
Как я могу проверить, что это на самом деле vm.emptyFunction
пустая функция?
вещи, которые не работают:
expect(vm.emptyFunction).toEqual({});
expect(vm.emptyFunction()).toEqual({});
expect(vm.emptyFunction).toEqual(() => {}); //using typescript
Вещь, которая работа:
expect(vm.emptyFunction).toEqual(jasmine.any(Function));
Но это будет получить справедливо для любого определения функции.
Почему вы хотите, чтобы проверить для этого случая? Может ли 'emptyFunction' быть определен снаружи, и если это пустая функция, это будет ошибка? Является ли функция пустой по умолчанию и должна быть назначена с надлежащей функцией, чтобы вы тестировали неинициализированный атрибут тестируемого модуля? –
здесь 'callback' вводится в контроллер. Мне нужно проверить, передаю ли я неопределенный 'callback', тогда' vm.emptyFunction' является пустой функцией вместо 'callback'. –
Тогда тестирование типа 'function' в первом случае и проверка того, был ли вызван обратный вызов, должен быть способом. –